我正在修改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()行中有一个技巧。 了解有资格进行垃圾回收的对象引用和无法访问的对象。“
有人可以解释为什么不删除尾随空格?
答案 0 :(得分:9)
方法trim()
不会修改String
,这是不可变的。它返回修剪后的String
,它会立即被忽略,保持s
不变。取代
s.trim( );
与
s = s.trim( );