java下修改String数组的教训
for(String str : strs){ str = str + “x”; }
上面的完全没效果,因为java里面String是不可变的对象。也就是说str=str+“x”;这一句话实际上创建了另一个字符串,然后让str指向了新的字符串。
我写出这样的代码是知道str无法被改变的,我当时想的是str不被改变,但是str的引用被改变了,那么数组是不是也就被改变了?
事实上,str 并不是 strs[i]。str被改变,str[i]还是没变,所以上面代码无效!
可以如下,改变数组里面引用的指向位置:
for(int i = 0; i < strs.length; i++){ strs[i] = strs[i] + “x” }
或者使用
String temp[] = new String[strs.length]; for(int i = 0; i < strs.length; i++){ temp[i] = strs[i] + “x”; }
浙公网安备 33010602011771号