Я должен объединить эти две строки из моих файлов ресурсов / значений:
<string name="Toast_Memory_GameWon_part1">you found ALL PAIRS ! on </string>
<string name="Toast_Memory_GameWon_part2"> flips !</string>
Я делаю это так:
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();
Но пробелы в конце первой строки и в начале второй строки исчезли (когда отображается тост) ...
Что мне делать ?
Я думаю, что ответ где-то здесь, в этой ссылке на документацию
или это что-то вроде использования & ;
символа "&" ??
android
string-concatenation
Хьюберт
источник
источник
Ответы:
Даже если вы используете форматирование строки, иногда вам все еще нужны пробелы в начале или конце вашей строки. В этих случаях не помогает ни экранирование
\
, ниxml:space
атрибут. Вы должны использовать сущность HTML 
для пробела.Используйте
 
для неразрывных пробелов.Используйте
 
для обычного пространства.источник
 
, и я не получил ошибку сборки, но мое пространство все еще игнорировалось. 
работал, но я не хочу неразрывных пробелов. Я хочу просто регулярное пространство.\u0020
работал.Я столкнулся с той же проблемой. Я хотел оставить пустым в конце строки ресурса, представляющей имя поля на экране.
Я нашел решение по этому вопросу: https://github.com/iBotPeaches/Apktool/issues/124
Это та же идея, которую предлагает Дуесси. Вставьте
\u0020
непосредственно в XML для пробела, который вы хотели бы сохранить.Пример :
Замена выполняется во время сборки, поэтому она не повлияет на производительность вашей игры.
источник
\u0020
ПРОСТРАНСТВО ASCII-кода. Это был лучший выбор для моего проекта, так как я должен был убедиться, что это ASCII.Эта документация предполагает, что цитирование будет работать:
источник
<string name="my_str_spaces">" Before <b>and</b> after? "</string>
Enclose the entire string in double quotes ("This'll work", for example)
где обсуждается побегSingle quote (')
.Я просто использую код UTF для пробела "\ u0020" в файле strings.xml.
работает отлично. (Android любит UTF-коды)
источник
Этот вопрос может быть старым, но на данный момент самый простой способ сделать это - добавить кавычки. Например:
источник
Есть возможность пространства с разной шириной:
| ПРОСТРАНСТВО | ТОНКОЕ ПРОСТРАНСТВО | ПРОСТРАНСТВО ВОЛОС | нет места |
Визуализация:
источник
Если вы действительно хотите сделать это так, как вы делали, то я думаю, что вы должны сказать ему, что пробелы актуальны, избегая его:
Тем не менее, я бы использовал форматирование строки для этого. Что-то вроде следующего:
тогда
источник
String.format
вызывает много выделений памяти, которые нежелательны в игре.используйте "" со значением строкового ресурса.
Пример: "значение с пробелами"
ИЛИ
используйте код для пробелов.
источник
Работая хорошо я использую \ u0020
Файл Java
Скриншот здесь Изображение показа работы этого кода
источник
Можно аргументировать, чтобы добавить пространство программно. Поскольку эти случаи будут часто использоваться в конкатенации, я решил остановить безумие и просто заняться старым
+ " " +
. Это будет иметь смысл в большинстве европейских языков, я бы понял.источник
Все ответы здесь не работают для меня. Вместо этого, чтобы добавить пробел в конце строки,
XML
я сделал этоисточник
В частности, я понятия не имею об Android, но это похоже на обычную обработку пробелов в XML - начальные и конечные пробелы в элементе обычно считаются незначительными и удаляются. Попробуй
xml:space
:источник
xml:space
похоже, игнорируется.Это может фактически не ответить на вопрос (Как сохранить пробелы в XML), но это может решить основную проблему более изящно.
Вместо того чтобы полагаться только на ресурсы XML, объединяйте с использованием строк формата. Итак, сначала удалите пробелы
А затем создайте свою строку по-другому:
источник
Существует также решение использования
CDATA
. Пример:Но в целом я думаю, что
\u0020
это достаточно хорошо.источник
Если вам нужно пространство для последующей его конкатенации с другими строками, вы можете использовать подход форматирования строк, добавляя аргументы в определение строки:
Затем для форматирования строки (например, если у вас есть ошибка, возвращенная сервером, в противном случае используйте
getString(R.string.string_resource_example)
):Что приводит к:
источник
Он не работает с xml: space = "preserve"
так что я сделал это самым быстрым способом =>
Я просто добавил + "" +, где это было нужно ...
источник