How to keep the spaces at the end and/or at the beginning of a String?


Question

I have to concatenate these two strings from my resource/value files:

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

I do it this way :

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();

But the spaces at the end of the first string and at the beginning of the second string have disappeared (when the Toast is shown) ...

What should I do ?

I guess the answer is somewhere here in this documentation link

or is it something like using &amp ; for the "&" character ??

1
323
1/8/2018 2:53:25 PM

Accepted Answer

Even if you use string formatting, sometimes you still need white spaces at the beginning or the end of your string. For these cases, neither escaping with \, nor xml:space attribute helps. You must use HTML entity &#160; for a whitespace.

Use &#160; for non-breakable whitespace.
Use &#032; for regular space.

472
3/27/2017 2:37:34 AM

I ran into the same issue. I wanted to leave a blank at the end of a resource string representing an on-screen field name.

I found a solution on this issue report : https://github.com/iBotPeaches/Apktool/issues/124

This is the same idea that Duessi suggests. Insert \u0020 directly in the XML for a blank you would like to preserve.

Example :

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

The replacement is done at build time, therefore it will not affect the performance of your game.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon