Подтвердить что ты не робот

Почему метод 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)

Почему "TEST" и "ING" не объединяются вместе?

4b9b3361

Ответ 1

a Строка immutable, то есть вы не можете изменить String в 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);

Ответ 2

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

s.concat("ING");

Попробуйте следующее:

s = s.concat("ING");

Ответ 3

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

s2 = s.concat("ING");

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

Ответ 4

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

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

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

Привет Hello World

Ответ 5

.concat() возвращает новое конкатенированное значение. там вы сделали s.concat("ING") → , это дает возвращаемое значение "Тестирование". Но вы должны получить его в объявленной переменной.

Если вы сделали s=s.concat("ING");, тогда значение "s" изменится на "TESTING"

Ответ 6

Поскольку String неизменна, когда concat() вызывается на любом String obj как

String s = "abc"; новый String obj создается в String pool ref s

s = s.concat( "def" ); здесь создается еще один String obj с val abcdef и ссылается на s