#java #string
#java #строка
Вопрос:
Как мне добавить что-то в конец строки, например целое число?
Пример:
int i = 0;
String string = Integer.toString(i);
string = string suffix;
Я попытался использовать знак плюс для добавления суффикса, но это не сработало. Любая помощь?
Комментарии:
1. Чему равно значение
suffix
? Каким был результат при выполнении кода? Чего вы ожидали? Пожалуйста, помогите нам помочь вам.2. То, что вы написали, будет работать просто отлично! Проблема должна быть в чем-то другом — если вы хотите решить проблему, вам нужно опубликовать SSCCE или, по крайней мере, дать некоторые подробности о том, как вы используете результирующую строку.
Ответ №1:
Приведенный вами код будет работать абсолютно нормально:
String suffix = "suffix";
int i = 0;
String string = Integer.toString(i);
string = string suffix;
System.out.println(string); // 0suffix
Я предполагаю, что в вашем реальном коде вы не присваиваете результат обратно переменной. Обратите внимание, что
оператор не изменяет существующую строку — он создает новую строку. Итак:
String text = "text";
String copy = text;
text = text "suffix";
System.out.println(copy); // Still just "text"; refers to original string
Комментарии:
1. Что, если это будет записано как строка «суффикс»? Это работает?
2. Я понял. Спасибо за вашу помощь.
3. @rulla101: Да, это будет работать нормально. Строковый литерал по-прежнему является ссылкой на строку…
Ответ №2:
Вы можете использовать функцию-член concat класса string.
string = string.concat( Integer.toString(i) );
Комментарии:
1. Нет, ты этого не делаешь. Использование
будет работать отлично и, как правило, более читабельно.
2. @JonSkeet — Какой приятный сюрприз ? После работы на SO более 10 месяцев получил от вас комментарий 🙂 Я изменил контекст на — «Вы можете использовать … »
Ответ №3:
Самый идиоматический способ сделать это в современной Java — это String.format("%s%d", s, i);
where s
is a String
и i
is an int
.
Комментарии:
1. Это частично зависит от того, хотите ли вы выводить данные с учетом локали. При этом будет использоваться форматировщик, зависящий от локали;
text integer
не будет.
Ответ №4:
Оператор , если первый параметр является строкой, автоматически преобразует другие параметры в строки.
Например, в следующем коде: —
String myString = "fred";
int suffix = 0;
myString = myString suffix;
myString будет «fred0»;