android - suchmaschinen - title tag definition



Wie behalten Sie die Leerzeichen am Ende und/oder am Anfang eines Strings? (8)

Alle Antworten hier haben nicht für mich funktioniert. Um ein Leerzeichen am Ende einer Zeichenfolge in XML hinzuzufügen, habe ich dies getan

<string name="more_store">more store<b> </b> </string>

https://src-bin.com

Ich muss diese zwei Zeichenfolgen aus meinen Ressourcen- / Wertdateien verketten:

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

Ich mache es so:

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 und am Anfang der zweiten Zeile sind verschwunden (wenn der Toast angezeigt wird) ...

Was soll ich machen ?

Ich denke, die Antwort ist irgendwo hier in diesem Dokumentationslink

oder ist es etwas wie mit &amp ; für das "&" Zeichen ??


Answer #1

Auch wenn Sie die Formatierung von Zeichenfolgen verwenden, benötigen Sie manchmal immer noch weiße Leerzeichen am Anfang oder am Ende der Zeichenfolge. Für diese Fälle hilft weder das Entkommen mit \ , noch das xml:space Attribut. Sie müssen die HTML-Entität &#160; für ein Leerzeichen.

Verwenden Sie &#160; für nicht zerbrechliche Leerzeichen.
Verwenden Sie &#032; für regelmäßigen Platz.


Answer #2

Ein Argument kann für das programmatische Hinzufügen des Speicherplatzes erstellt werden. Da diese Fälle oft in Verkettungen verwendet werden, beschloss ich, den Wahnsinn zu stoppen und einfach das alte + " " + tun. Diese werden in den meisten europäischen Sprachen Sinn machen, würde ich sammeln.


Answer #3

Es funktioniert nicht mit xml: space = "preserve"

also habe ich es am schnellsten gemacht =>

Ich habe einfach ein + "" + hinzugefügt, wo ich es brauchte ...

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

Answer #4

Ich bin auf dasselbe Problem gestoßen. Ich wollte am Ende eines Ressourcenstrings, der einen Bildschirmfeldnamen darstellt, eine Leerstelle hinterlassen.

Ich habe eine Lösung zu diesem Problembericht gefunden: https://github.com/iBotPeaches/Apktool/issues/124

Dies ist die gleiche Idee, die Duessi vorschlägt. Fügen Sie \u0020 direkt in die XML- \u0020 für ein leeres \u0020 ein, das Sie beibehalten möchten.

Beispiel:

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

Die Ersetzung erfolgt zur Erstellungszeit, daher hat dies keinen Einfluss auf die Leistung Ihres Spiels.


Answer #5

Ich habe keine Ahnung von Android im Besonderen, aber das sieht wie die übliche XML-Whitespace-Handhabung aus - führende und nachfolgende Whitespaces innerhalb eines Elements werden im Allgemeinen als unbedeutend betrachtet und entfernt. Versuchen Sie xml:space :

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

Answer #6

Verwenden Sie "" mit dem String-Ressourcenwert.

Beispiel: "Wert mit Leerzeichen"

ODER

Verwenden Sie \ u0020 Code für Leerzeichen.


Answer #7

Wenn du es wirklich so machen willst, wie du es getan hast, dann denke ich, dass du ihm sagen musst, dass das Whitespace relevant ist, indem du ihm entkommst:

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

Allerdings würde ich hierfür die Formatierung verwenden . Etwas wie das Folgende:

<string name="Toast_Memory_GameWon">you found ALL PAIRS ! on %d flips !</string>

dann

String message_all_pairs_found = String.format(getString(R.string.Toast_Memory_GameWon), total_flips);




string-concatenation