Comment garder les espaces en fin et/ou au début d'une Chaîne de caractères?
Je dois concaténer ces deux chaînes de mes ressources/valeur de fichiers:
<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2"> flips !</string>
Je faire de cette façon :
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();
Mais les espaces à la fin de la première phrase et au début de la deuxième chaîne
ont disparu (quand le pain est indiqué) ...
Que dois-je faire ?
Je suppose que la réponse est quelque part ici, dans cette documentation lien
ou est-ce quelque chose comme l'utilisation de & ;
pour le "&" caractère ??
- Il y a plusieurs bonnes réponses, mais aucun d'eux ne fonctionne pour moi (voir mon commentaire). Le bounty est pour toute réponse que fournit un moyen d'obtenir un réel caractère d'espace (U+0020) comme premier ou dernier caractère de la chaîne de ressource.
- Méchant méchant android 🙁
Vous devez vous connecter pour publier un commentaire.
Même si vous utilisez la mise en forme de chaîne, parfois, vous avez encore besoin d'espaces au début ou à la fin de votre chaîne. Pour ces cas, ni s'enfuir avec
\
, nixml:space
attribut permet à l'. Vous devez utiliser les entités HTML 
pour un espace.Utilisation
 
pour les non-sécable espace.Utilisation
 
régulier de l'espace. 
, et je n'ai pas d'erreur de compilation, mais mon espace était encore ignoré. 
travaillé, mais je ne veux pas non sécable espace. Je veux juste un espace normal.\u0020
travaillé.Je suis tombé sur le même problème. Je voulais laisser un vide à la fin d'une chaîne de ressource représentant l'écran de nom de champ.
J'ai trouvé une solution sur cette question du rapport : https://github.com/iBotPeaches/Apktool/issues/124
C'est la même idée que Duessi suggère. Insérez
\u0020
directement dans le XML pour une cache que vous souhaitez conserver.Exemple :
Le remplacement est effectué au moment de la construction, donc il ne sera pas affecter les performances de votre jeu.
\u0020
est l'ESPACE de code ASCII. C'était le meilleur choix pour mon projet car j'ai dû assurez-vous qu'il a été ASCII.Ce la documentation suggère citant fonctionne:
<string name="my_str_spaces">" Before <b>and</b> after? "</string>
Enclose the entire string in double quotes ("This'll work", for example)
où il traite de l'échappement d'uneSingle quote (')
.Je viens d'utiliser l'UTF code pour l'espace "\u0020" dans le strings.xml fichier.
fonctionne très bien. (Android aime UTF codes)
Cette question peut-être vieux, mais comme de maintenant la meilleure façon de le faire est d'ajouter des guillemets.
Par exemple:
Il est possible de l'espace avec des largeurs différentes:
| ESPACE | ESPACE | CHEVEUX | ESPACE pas d'espace |
Visualisation:
Si vous voulez vraiment le faire de la façon que vous aviez à faire, puis je pense que vous avez à dire que l'espace est pertinent par lui échapper:
Cependant, je ne l'utiliserais mise en forme de chaîne pour cela. Quelque chose comme ce qui suit:
puis
String.format
provoque de nombreuses allocations de mémoire qui sont indésirables dans un jeu.utiliser "" la chaîne de la valeur de la ressource.
Exemple :
"la valeur par des espaces"
OU
utiliser \u0020 code pour les espaces.
Fonctionne bien
Je suis à l'aide de \u0020
Fichier Java
Capture d'écran
ici, l'Image de Montrer de Travail de ce code
Toutes les réponses ici n'a pas de travail pour moi. Au lieu de cela, ajouter un espace à la fin d'une chaîne dans
XML
j'ai fait ceUn argument peut être faite pour l'ajout de l'espace par programmation. Depuis ces cas sont souvent utilisés dans les précédents, j'ai décidé d'arrêter la folie et de la vieille
+ " " +
. Ces sens dans plus langues Européennes, je voudrais recueillir.Je n'ai aucune idée sur Android en particulier, mais cela ressemble à l'habitude XML les espaces de manutention - attaque et de fuite des espaces à l'intérieur d'un élément est généralement considérée comme négligeable et enlevé. Essayez
xml:space
:xml:space
semble être ignoré.Ce ne peut réellement répondre à la question (Comment garder des espaces en XML), mais il peut résoudre le problème sous-jacent plus en douceur.
Au lieu de compter uniquement sur les ressources en XML, à l'aide de concaténer des chaînes de format.
Alors d'abord supprimer les espaces
Et ensuite construire votre chaîne différemment:
Si vous avez besoin de l'espace pour le but de la plus tard, enchaînant avec d'autres chaînes, vous pouvez utiliser la mise en forme de chaîne approche de l'ajout d'arguments à votre définition de la chaîne:
Puis le format de la chaîne:
Il y a aussi la solution de l'utilisation de
CDATA
. Exemple:Mais en général je pense
\u0020
est assez bon.Il ne fonctionne pas avec xml:space="preserve"
j'ai donc fait de la manière la plus rapide =>
J'ai simplement ajouté un +" "+ où j'en avais besoin ...