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

时间:2014-02-05 22:49:03

标签: 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);

A1。输出将是

" Hello  World "

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

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

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

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

1 个答案:

答案 0 :(得分:9)

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

s.trim( );

s = s.trim( );