java中replace替换问题

package has;

public class has
{
public static void stringReplace(String text){
text=text.replace('j','L');

}
public static void bufferReplace(StringBuffer text){
text=text.append("c");
}

public static void main(String[] args)
{
/**int j = 0;
for(int i = 0;i<100;i++)
{
j=j++;
}
System.out.println(j+ " " );
*/
String textString=new String("java");
StringBuffer textBuffer=new StringBuffer("java");
stringReplace(textString);
bufferReplace(textBuffer);
System.out.println(textString+textBuffer);

}
}

为什么输出javajavac啊?
stringReplace方法结束以后,并没有改变textString在堆中的java?

第1个回答  推荐于2018-05-12
这个实例就很好,说明了java中String和StringBuffer的区别。
StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。追问

在你回答之前我百度出来了,不过依旧谢谢你。

本回答被提问者采纳
第2个回答  2016-07-01
实现思路:先获取到特定位置的字符,之后直接替换即可
public class strRepalce {
public static void main(String[]args){
//要替换的一个字符串
String str="abcmdf";
//获取指定字符位置 例如取 替换c字符
int i=str.indexOf("c");
//str.charAt(i) 取出指定字符(char类型 无法直接转string) String.valueOf 转换成string类型
String str2=String.valueOf(str.charAt(i));
//X为指定替换字符
str=str.replaceFirst(str2,"X");

System.out.println(str);
}
}本回答被网友采纳
相似回答