Java 为什么trim()不删除本例中的尾随空格?

Java 为什么trim()不删除本例中的尾随空格?,java,string,trim,Java,String,Trim,我在这里修改Java:并提出了以下问题: “Q1.以下代码段的输出是什么 String s = " Hello "; s += " World "; s.trim( ); System.out.println(s); A1.输出将为 " Hello World " 有前导空格和尾随空格。有些人会期望一个修剪过的“Hello World” 那么,这个问题要测试什么概念呢 字符串对象是不可变的,在s.trim()行中有一个技巧。 了解符合垃圾收集条件的对象引用和无法访问的对象。“ 有人能解释为

我在这里修改Java:并提出了以下问题:

“Q1.以下代码段的输出是什么

String s = " Hello ";
s += " World ";
s.trim( );
System.out.println(s);
A1.输出将为

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

那么,这个问题要测试什么概念呢

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

有人能解释为什么没有删除尾随空格吗?

方法
trim()
不会修改不可变的
字符串。它返回经过修剪的
字符串
,该字符串立即被忽略,保持
s
不变。替换

s.trim( );

方法
trim()
不会修改
字符串,该字符串是不可变的。它返回经过修剪的
字符串
,该字符串立即被忽略,保持
s
不变。替换

s.trim( );


啊,对。我现在看到了。他们故意错过了作业!啊,对。我现在看到了。他们故意错过了作业!为了在将来帮助您,如果我不知道s.trim()不修改字符串,我将如何回答这个问题。在问题文本中,您被告知
字符串对象是不可变的,并且在s.trim()行中有一个技巧
。因为这行中唯一的内容是
s.trim(),我会看看它的作用。这里是javadoc:第一行告诉您
返回字符串的副本,前导和尾随空格被省略。
由于返回值在这里被忽略,您已经找到了答案。为了将来帮助您,如果我不知道s.trim()不修改字符串,我将如何回答这个问题。在问题文本中,您被告知
字符串对象是不可变的,并且在s.trim()行中有一个技巧
。因为这行中唯一的内容是
s.trim(),我会看看它的作用。这里是javadoc:第一行告诉您
返回字符串的副本,省略了前导和尾随空格。
因为这里忽略了返回值,所以您找到了答案。