Я пересматриваю Java здесь: http://java-success.blogspot.com.au/2012/06/core-java-coding-questions-frequently.html и пришел по этому вопросу:.?.Почему trim() не удаляет конечные пробелы в этом примере?
«Q1 Каких будет выходом из следующего фрагмента кода
String s = " Hello ";
s += " World ";
s.trim();
System.out.println(s);
A1 Выход будет
" Hello World "
с ведущими и завершающие пробелы. Некоторые ожидали бы обрезанный «Hello World».
Итак, что понятия делает этот вопрос пытается проверить?
Строковые объекты неизменяемы, и есть трюк в строке s.trim(). ссылки Понимание объекта и недостижимые объекты, которые имеют право для сбора мусора.»
Может кто-то объяснить, почему замыкающие пробелы не удаляются?
Просто, чтобы помочь вам в будущем, вот как бы я работал, чтобы ответить на вопрос, не знал ли я, что s.trim() не изменяет строку. В тексте вопроса вам сообщается, что объекты String неизменяемы, и в s.trim() строке есть трюк. Поскольку единственная вещь в этой строке - 's.trim();', я бы посмотрел, что это делает. Вот javadoc: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#trim() В первой строке там говорится: «Возвращает копию строки с ведущими и trailing whitespace omitted. 'Поскольку здесь возвращаемое значение игнорируется, вы нашли свой ответ. –