明白了,你这样试试public class Test2 { 
public static void stringReplace (String text) { 
text = text.replace ('a','w'); 
}  public static void bufferReplace (StringBuffer text) { 
text = text.append("d");

 
public static void main (String args[]) { 

String textString = new String ("java"); 
StringBuffer textBuffer = new StringBuffer ("java"); 
String bcd =textString.replace('j','i');
System.out.println(bcd);
stringReplace (textString);
bufferReplace (textBuffer);

System.out.println(textString+","+textBuffer);
}
}string 对象一旦生成是不能改变的,replace对象是访问一个新的对象

解决方案 »

  1.   

    字符传是“常量”,在
    public static void stringReplace (String text) { 
    text = text.replace ('j','i'); 

    中,text.replace('j','i')其实是新生成了一个字符串,并将这个字符串的地址付给text,这样并不能影响调用者textString 的值。
    而StringBuffer 并不是“常量”,在
    public static void bufferReplace (StringBuffer text) { 
    text = text.append("C");

    中,text.append("C")其实就是在text的最后追加了“C",而text和调用者textBuffer引用同一个地址,因此,他们的内容是相同的,都是"javac".
    看看类库中String和StringBuffer的实现,所有的就明白了。
      

  2.   

    Java中的String对象是不能改变的,所以String.replace函数不是对该String进行修改,而是返回一个新创建的修改后的String对象的引用。并且在Java中的函数传递是值传递方式,所以stringReplace(String text)也不能改变text这个引用指向的对象,所以在stringReplace中写入text=text.replace('j','i');也不能解决问题。
    楼主一共犯了两个错误。
    小弟初来乍到,还请兄弟们多多指点。
      

  3.   

    public class Test2 { 
    public static String stringReplace (String text) { 
    return text.replace ('j','i'); 
    }  public static StringBuffer bufferReplace (StringBuffer text) { 
    return text.append("C");

     
    public static void main (String args[]) { 

    String textString = new String ("java"); 
    StringBuffer textBuffer = new StringBuffer ("java"); 

    textString= stringReplace (textString);
    textBuffer=bufferReplace (textBuffer);

    System.out.println(textString+","+textBuffer);
    }
    }
      

  4.   

    java对象是传址,对于传入的StringBuffer当然会随之改变
    但是String 是特殊的对象,传递参数时和普通变量一样,在函数内部产生新的String
      

  5.   

    String类型的变量存储的是不变的量,对其修改后返回新的String实例(在你的程序中,将void改为String,再return text就行了),后者是引用了同一个对象.
      

  6.   

    当局者迷啊!String是基本型别!我把String看成对象了!
    to macoff(天堂) :切入重点!虽然你回答的不正却!但一百分给你了