明白了,你这样试试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对象是访问一个新的对象
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对象是访问一个新的对象
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的实现,所有的就明白了。
楼主一共犯了两个错误。
小弟初来乍到,还请兄弟们多多指点。
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);
}
}
但是String 是特殊的对象,传递参数时和普通变量一样,在函数内部产生新的String
to macoff(天堂) :切入重点!虽然你回答的不正却!但一百分给你了