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

Почему «ТЕСТ» и «ИНГ» не объединяются вместе?

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

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

 s.concat("ING"); 

Попробуй это:

 s = s.concat("ING"); 

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

 s2 = s.concat("ING"); 

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

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

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

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

 Hello Hello World 

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

Если вы сделали s=s.concat("ING"); то значение «s» изменится на «ТЕСТИРОВАНИЕ»,

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

Строка s = “abc”; новый String obj создается в String pool ref by s

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

Interesting Posts
Давайте будем гением компьютера.