不可以直接使 a = "cde";  可以这样的,重新赋值嘛String[] str = new String[1];
String a = "abc";
str[0] = "abc";
a = "cde";
str[0] = "cde";
都可以的呀

解决方案 »

  1.   

    真是奇怪了!
    《Core Java》第47页说,不能直接改变字符串,我原来页试了一次直接重新赋值,结果
    报错,但是现在又正常了,真是奇怪了!!!书中言道:『String类中没有直接改变已有字符串中某个字符的方法。如果你希望把greeting改变成"Hell!",你并不能直接把greeting最后一个字符改成'!'。....在Java中,取出希望保留的子串,然后把它与希望代替的字连接:greeting =greeting.substring(0,4)+"!"; 这样greeting的值就变成了"Hell!"』这是怎么回事ni???
      

  2.   

    关于String的讨论太多了,你搜一下,会有很多收获的.
    这叫不变类.. 自己找一下有关的资料吧...
      

  3.   

    core java中哪段话的意思你理解错了吧,它不是说不能给String变量重新赋值,
    而是说String里面的值不能改,我给你解释一下:
     String a = "abcd";
    这个时候a其实是一个引用,它指向的是内存中的一个地址,
    你不能在a的值不变的情况(就是a指向的地址不变)下改变“abcd”的值,
    但是你可以让a重新指向一个新的地址。
      

  4.   

    String不是变量咯,而是一个基础类。:)
      

  5.   

    njuabc   ,java高人也,也是C++的高手吧:)
      

  6.   

    又是这样的问题,我不想写了这个问题写简单了,会引起不必要的误解,理解的时候容易和传参混在一起去搜索一下以前的帖子吧,很多的还是说一句吧:一个String里面的内容是在生成的时候就确定下来的,不能改变的,任何改变都需要产生新的String