黑马程序员技术交流社区
标题:
关于字符串引用操作后没有改变的问题
[打印本页]
作者:
Walking Walking
时间:
2013-3-10 11:27
标题:
关于字符串引用操作后没有改变的问题
有如下一个例子,在操作字符串后s.trim()并没有改变引用s的值,按正常的的逻辑s.trim()操作的是引用,应该直接去掉两边的空格,但实际上不是,返回的是一个copy,要是直接操作原有的s不是更简单吗?java为什么要返回一个copy呢?
class Demo {
public static void main(String[] args) {
String s = " Hello ";
s += " World ";
s.trim(); //调用去掉空白方法
System.out.println(s); //输出带空格的“ Hello World ”
}
}
作者:
黄玉昆
时间:
2013-3-10 11:58
因为只要" Hello "这个值一建立,就是永远不变的值了,这个是String的特点。所以只能通过copy来创建新的字符串。但是StrngBuilder就不一样,而是作为一个缓冲区,可以连接多个字符串而最终是一个对象
作者:
张卫刚
时间:
2013-3-10 13:01
String s = " Hello ";" 用String声明的变量,值不可以改变,这是java中String的特点。
你可以建一个变量来接收 s.trim(); 如String x=s.trim(); 打印x就去掉空格了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2