黑马程序员技术交流社区

标题: 关于String的小问题 [打印本页]

作者: 刘忠德    时间: 2012-1-1 16:03
标题: 关于String的小问题
本帖最后由 刘忠德 于 2012-1-1 18:30 编辑

String s1 = "spring";
String s2 = s1 + "summer ";
s1.concat("fall ");
s2.concat(s1);
s1 += "winter";
System.out.println(s1 + " " + s2);

上述代码输出是? 总共有多少个String对象?
作者: 闫江龙    时间: 2012-1-1 17:02
输出结果是springwinter springsummer
concat()方法使用后会返回一个新的字符串 但不改变原有的 s1.concat("fall ");这句执行后 s1是不变的 s2同理
  明白?


作者: 闫江龙    时间: 2012-1-1 17:03
本帖最后由 闫江龙 于 2012-1-1 17:14 编辑

补充一下 用“+=”的话会改变原有字符串+完后 =赋值了  concat方法是重载了“+”
作者: lvwenwen88    时间: 2012-1-1 17:24
输出结果:springwinter springsummer
concat()方法使用后会返回一个新的字符串,但不改变原来的字符串,
作者: lvwenwen88    时间: 2012-1-1 17:24
将指定字符串连接到此字符串的结尾。
作者: 付星    时间: 2012-1-1 17:50
String s1 = "spring";
                String s2 = s1 + "summer ";//到这里有三个对象了:"spring" "summer" "springsummer"
                System.out.println(s1==s1.concat("fall "));//false由此可见concat方法返回新的对象,到这有五个对象了:"fall " "springfall "
                s2.concat(s1);;//concat对原字符串并不修改,那这里到六个了:"springsummer spring"
                s1 += "winter";//算上这里是八个了:"winter" "springwinter"
                System.out.println(s1 + " " + s2);//打印springwinter springsummer
作者: 刘忠德    时间: 2012-1-1 18:30
哦,明白了,谢谢大家的回复~~




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