StringBuffer好像需要指定替换的位置,replace(int start, int end, String str) 你可以把StringBuffer的值赋给一个String,然后用String里面的replace,replace(target, replacement)
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")); }
int index = -1; while((index =str.indexOf(str1)) != -1) {
StringBuffer好像需要指定替换的位置,replace(int start, int end, String str)
你可以把StringBuffer的值赋给一个String,然后用String里面的replace,replace(target, replacement)
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"));
}
int index = -1;
while((index =str.indexOf(str1)) != -1) {
Str = Str.replace(index,str1.length(),str2); }
System.out.println("替换后的短文为:" + Str);之前还写了个
StringBuffer Str = new StringBuffer(str); 因为是自己看的书,不知道这样写对了没…
运行能够通过,但替换后的短文总不能输出。
初学,第一次用StringBuffer…
Scanner in = new Scanner(System.in);
System.out.println("输入一段短文:");
str = in.nextLine();
System.out.println("你输入的短文为:" + str);
StringBuffer Str = new StringBuffer(str);
System.out.println("输入一个原单词:");
str1 = in.nextLine();
System.out.println("输入一个新单词:");
str2 = in.nextLine();
int index = -1;
while((index =str.indexOf(str1)) != -1) {
Str = Str.replace(index,str1.length(),str2);
}
System.out.println("替换后的短文为:" + Str);
}我知道肯定写得很垃圾,大家温柔点哈…
运行能够通过,但替换后的短文总不能输出。帮忙看看错在哪里?
while((index =str.indexOf(str1)) != -1) {//这个循环条件有问题,下面是个死循环Str = Str.replace(index,str1.length(),str2);
}
while((index =Str.indexOf(str1)) != -1) { Str = Str.replace(index,index+str1.length(),str2);
}把小写的str改成大写的Str
while((index =Str.indexOf(str1)) != -1) { Str = Str.replace(index,index+str1.length(),str2);
}
Str = Str.replace(index,index + str1.length(),str2);//问题在这句,这个我改后的,看看,和你的区别
把小写的str改成大写的Str 又是个粗心的地方……总之,谢谢楼上诸位的解答了!
能把“I am Jam,and he is James;Jam is his name,is not my name!”中的单词"Jam"替换成"me"吗?