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

  • Необходимо выполнить поиск подстановочных знаков (*,? И т. Д.) В строке с использованием Regex
  • Что такое интерпретация Java String?
  • Как работает Integer.parseInt (строка)?
  • Почему char * вызывает неопределенное поведение, а char - нет?
  • Как избавиться от `устаревшего преобразования из строковой константы в 'char *' 'предупреждения в GCC?
  • Как разбить строку на пробел
  • Как разбирать строку в nullable int
  • Как преобразовать число в строку и наоборот в C ++
  • Как вы получаете строку из MemoryStream?
  • Вставьте символ в строку в определенном месте
  • Как узнать размер строки в байтах?
  • Давайте будем гением компьютера.