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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 葛晓东 中级黑马   /  2014-6-1 19:03  /  1556 人查看  /  18 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 葛晓东 于 2014-6-3 23:44 编辑
  1. public static void method_7(){
  2.                 String s = "helloworld";
  3.                 System.out.println(s);
  4. s.substring(5);
  5.                 System.out.println(s);
  6.         }
复制代码
明明截取了,为什么两输出结果一样哇?

点评

认真看视频吧!这问题实在太基础了  发表于 2014-6-1 19:41

18 个回复

倒序浏览
你只对字符串做了处理,但没有改变s的内容
所以输出还是原来的样子

public static void method_7(){
                String s = "helloworld";
                System.out.println(s);
                 //对s重新赋值
                 s = s.substring(5);
                System.out.println(s);
        }

就可以了

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报 1 0
版主说的很对,要改变值除非在赋值给S,String有不改变值的特征
回复 使用道具 举报
分被版主抢走了{:2_32:}
回复 使用道具 举报
s.SubString(5)结果是一个新的字符串,你要用一个string对象去接收(String str=s.SubString(5)),就行了,能明白吗?
回复 使用道具 举报
李小然 发表于 2014-6-1 19:23
你只对字符串做了处理,但没有改变s的内容
所以输出还是原来的样子

ok,明白了
回复 使用道具 举报
大哥,你输出的是s啊!!!怎么可能不一样了。。。
回复 使用道具 举报
大家一起加油
回复 使用道具 举报
对的,你要用一个String类型的变量接受才行呢
回复 使用道具 举报
希望你多看看string和StringBufffer的区别
回复 使用道具 举报
需要重新赋值
回复 使用道具 举报
加油。。这是初级问题,我也是这么过来的
回复 使用道具 举报
String是不可变的,加油吧!
回复 使用道具 举报
李小然 发表于 2014-6-1 19:23
你只对字符串做了处理,但没有改变s的内容
所以输出还是原来的样子

ok    原来是忘记再次赋值了  
回复 使用道具 举报
System.out.println(s.subString(5));
回复 使用道具 举报
定义的s没做任何赋值,所以打印的s不变。你可以直接用System.out.println(s.substring(5));
回复 使用道具 举报
不要这样哦,s.substring()方法调用后,应该付给一个新的变量,调用这个方法不会改变原对象的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马