黑马程序员技术交流社区

标题: 求解:结果为什么前后带空格呢? [打印本页]

作者: 小丑的媳妇2    时间: 2013-3-6 12:20
标题: 求解:结果为什么前后带空格呢?
本帖最后由 朱荣宁. 于 2013-3-6 12:22 编辑

下面的代码
String s = " Hello ";
s += " World ";
s.trim( );
System.out.println(s);

输出是"  Hello  World  "(注意:前后都带空格)

求解 为什么前后都有空格啊???在java中 符串对象(String Object)是非可变的(immutable),
这个题目容易我感觉迷惑人的地方在s.trim( )这一行。可是我还是搞不明白啊!求指教!
作者: 贾振凯    时间: 2013-3-6 12:59
trim( )方法会返回一个新字符串,
这个新字符串就是在原来字符串的基础上去掉两头的空白符后得到的一个新的对象
改成String newString  = s.trim( );就OK啦!
作者: scott0610    时间: 2013-3-6 13:00
trim():返回字符串的副本,忽略前导空白和尾部空白。
如果此 String 对象表示一个空字符序列,或者此 String 对象表示的字符序列的第一个和最后一个字符的代码都大于 '\u0020'(空格字符),则返回对此 String 对象的引用。
否则,若字符串中没有代码大于 '\u0020' 的字符,则创建并返回一个表示空字符串的新 String 对象。
否则,假定 k 为字符串中代码大于 '\u0020' 的第一个字符的索引,m 为字符串中代码大于 '\u0020' 的最后一个字符的索引。创建一个新的 String 对象,它表示此字符串中从索引 k 处的字符开始,到索引 m 处的字符结束的子字符串,即 this.substring(k, m+1) 的结果。
此方法可用于截去字符串开头和末尾的空白(如上所述)。
作者: 施家雄    时间: 2013-3-6 13:37
    你这样写不对,应该改成下面:
class Hello
{
        public static void main(String[] args)
        {
                String s = "     Hello ";
                s += "    World     ";
                String a=s.trim();
       
                System.out.println(a);

               
        }
}
trim()的作用是去除字符串前面和后面的空格:例如:----------Hello     World-----------    :结果是:Hello     World。虚线代表空格。。。你重新试下就好了,希望能帮到你。
作者: HM李帅    时间: 2013-3-8 00:08
trim并不会改变原有对象
而是会指向一个新对象
所以这里把它赋给一个新字符串之后输出就可以了
2l回答的很具体




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2