A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 小丑的媳妇2 中级黑马   /  2013-3-6 12:20  /  2023 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 朱荣宁. 于 2013-3-6 12:22 编辑

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

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

求解 为什么前后都有空格啊???在java中 符串对象(String Object)是非可变的(immutable),
这个题目容易我感觉迷惑人的地方在s.trim( )这一行。可是我还是搞不明白啊!求指教!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
trim( )方法会返回一个新字符串,
这个新字符串就是在原来字符串的基础上去掉两头的空白符后得到的一个新的对象
改成String newString  = s.trim( );就OK啦!

评分

参与人数 1黑马币 +9 收起 理由
黄玉昆 + 9 赞一个!

查看全部评分

回复 使用道具 举报
trim():返回字符串的副本,忽略前导空白和尾部空白。
如果此 String 对象表示一个空字符序列,或者此 String 对象表示的字符序列的第一个和最后一个字符的代码都大于 '\u0020'(空格字符),则返回对此 String 对象的引用。
否则,若字符串中没有代码大于 '\u0020' 的字符,则创建并返回一个表示空字符串的新 String 对象。
否则,假定 k 为字符串中代码大于 '\u0020' 的第一个字符的索引,m 为字符串中代码大于 '\u0020' 的最后一个字符的索引。创建一个新的 String 对象,它表示此字符串中从索引 k 处的字符开始,到索引 m 处的字符结束的子字符串,即 this.substring(k, m+1) 的结果。
此方法可用于截去字符串开头和末尾的空白(如上所述)。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 赞一个!

查看全部评分

回复 使用道具 举报
    你这样写不对,应该改成下面:
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。虚线代表空格。。。你重新试下就好了,希望能帮到你。
回复 使用道具 举报
trim并不会改变原有对象
而是会指向一个新对象
所以这里把它赋给一个新字符串之后输出就可以了
2l回答的很具体
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马