Почему делает concat Java (), метод не делает что-нибудь?

Этот код:

String s = "TEST";
String s2 = s.trim();

s.concat("ING");
System.out.println("S = "+s);
System.out.println("S2 = "+s2);

результаты в этом выводе:

S = TEST
S2 = TEST
BUILD SUCCESSFUL (total time: 0 seconds)

Почему "ТЕСТ" и "ING" не связываются вместе?

17
задан Pops 4 September 2012 в 02:15
поделиться

4 ответа

Строка является неизменяемой, то есть вы не можете изменить строку в Java. concat() возвращает новую, конкатенированную, строку.

String s = "TEST";
String s2 = s.trim();
String s3 = s.concat("ING");

System.out.println("S = "+s);
System.out.println("S2 = "+s2);
System.out.println("S3 = "+s3);
47
ответ дан 30 November 2019 в 10:14
поделиться

Я думаю, что вы хотите сделать следующее:

s2 = s.concat("ING");

Функция concat не изменяет строку s, она просто возвращает s с добавленным аргументом.

3
ответ дан 30 November 2019 в 10:14
поделиться

concat возвращает строку, поэтому вы в основном вызываете concat, не сохраняя то, что он возвращает. Попробуйте следующее:

String s = "Hello";
String str = s.concat(" World");
System.out.println(s);
System.out.println(str);

Должен напечатать:

Hello
Hello World
3
ответ дан 30 November 2019 в 10:14
поделиться

Поскольку String является неизменяемым - класс String не содержит методов, изменяющих содержимое самого объекта String. Метод concat() возвращает новую String, содержащую результат операции. Вместо этого:

s.concat("ING");

Попробуйте так:

s = s.concat("ING");
9
ответ дан 30 November 2019 в 10:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: