62,614
社区成员
发帖
与我相关
我的任务
分享
Str = Str.replace(index,index + str1.length(),str2);//问题在这句,这个我改后的,看看,和你的区别
while((index =Str.indexOf(str1)) != -1) {
Str = Str.replace(index,index+str1.length(),str2);
}
while((index =Str.indexOf(str1)) != -1) {
Str = Str.replace(index,index+str1.length(),str2);
}
while((index =str.indexOf(str1)) != -1) {//这个循环条件有问题,下面是个死循环
Str = Str.replace(index,str1.length(),str2);
}
String str,str1,str2;
public static StringBuffer replaceAll(StringBuffer sb, String oldStr, String newStr) {
int i = sb.indexOf(oldStr);
int oldLen = oldStr.length();
int newLen = newStr.length();
while (i > -1) {
sb.delete(i, i + oldLen);
sb.insert(i, newStr);
i = sb.indexOf(oldStr, i + newLen);
}
return sb;
}
public static void main(String[] args) {
StringBuffer sb = new StringBuffer("maimmaim");
System.out.println(replaceAll(sb, "maim", "mai"));
}
StringBuffer好像需要指定替换的位置,replace(int start, int end, String str)
你可以把StringBuffer的值赋给一个String,然后用String里面的replace,replace(target, replacement)