为什么trim()不会删除此示例中的尾随空格?

Joh*_* Au 1 java string trim

我从这里修改Java:http://java-success.blogspot.com.au/2012/06/core-java-coding-questions-frequently.html并提出了这个问题:

"Q1.以下代码片段的输出结果是什么?

String s = " Hello ";
s += " World ";
s.trim( );
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)

A1.输出将是

" Hello  World "
Run Code Online (Sandbox Code Playgroud)

带有前导和尾随空格.有些人会期待一个修剪过的"Hello World".

那么,这个问题试图测试哪些概念?

字符串对象是不可变的,在s.trim()行中有一个技巧.了解有资格进行垃圾回收的对象引用和无法访问的对象."

有人可以解释为什么不删除尾随的空格?

rge*_*man 9

该方法trim()不会修改String,这是不可变的.它返回修剪后的String,立即被忽略,保持s不变.更换

s.trim( );
Run Code Online (Sandbox Code Playgroud)

s = s.trim( );
Run Code Online (Sandbox Code Playgroud)