424 Stimmen

Wie kann man die Leerzeichen am Ende und/oder am Anfang eines Strings beibehalten?

Ich muss diese beiden Zeichenfolgen aus meinen Ressourcen-/Wertedateien miteinander verknüpfen:

<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2"> flips !</string>

Ich mache es auf diese Weise:

String message_all_pairs_found = getString(R.string.Toast_Memory_GameWon_part1)+total_flips+getString(R.string.Toast_Memory_GameWon_part2);

Toast.makeText(this, message_all_pairs_found, 1000).show();

Aber die Leerzeichen am Ende der ersten Zeichenfolge und am Anfang der zweiten Zeichenfolge sind verschwunden (wenn der Toast angezeigt wird) ...

Was soll ich tun?

Ich vermute, die Antwort liegt irgendwo hier in dieser Link zur Dokumentation

oder ist es etwas wie die Verwendung von &amp ; für das Zeichen "&" ??

575voto

duessi Punkte 5862

Auch wenn Sie die Formatierung von Zeichenketten verwenden, benötigen Sie manchmal Leerzeichen am Anfang oder am Ende der Zeichenkette. In diesen Fällen ist weder das Escaping mit \ noch xml:space Attribut hilft. Sie müssen die HTML-Entität &#160; für ein Leerzeichen.

Verwenden Sie &#160; für nicht unterbrechbare Leerzeichen.
Verwenden Sie &#032; für den regulären Raum.

560voto

DavGin Punkte 7715

Ich bin auf das gleiche Problem gestoßen. Ich wollte ein Leerzeichen am Ende einer Ressourcenzeichenfolge lassen, die einen Feldnamen auf dem Bildschirm darstellt.

Ich habe eine Lösung für diesen Problembericht gefunden: https://github.com/iBotPeaches/Apktool/issues/124

Dies ist die gleiche Idee, die Duessi vorschlägt. einfügen \u0020 direkt in der XML-Datei für einen Rohling, den Sie beibehalten möchten.

Beispiel:

<string name="your_id">Score :\u0020</string>

Die Ersetzung erfolgt zum Zeitpunkt der Erstellung, so dass sie die Leistung Ihres Spiels nicht beeinträchtigt.

163voto

Skywalker5446 Punkte 1549

Diese Dokumentation legt nahe, dass das Zitieren funktioniert:

<string name="my_str_spaces">" Before and after? "</string>

41voto

Jasen Punkte 461

Ich verwende einfach den UTF-Code für Leerzeichen " \u0020 " in der Datei strings.xml.

<string name="some_string">\u0020The name of my string.\u0020\u0020</string>

funktioniert hervorragend. (Android liebt UTF-Codes)

31voto

kyay10 Punkte 746

Diese Frage mag alt sein, aber derzeit ist es am einfachsten, sie in Anführungszeichen zu setzen. Zum Beispiel:

<string name="Toast_Memory_GameWon_part1">"you found ALL PAIRS ! on "</string>
<string name="Toast_Memory_GameWon_part2">" flips !"</string>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X