我试图在每次出现在字符串中时删除“再见”这个词。它首次出现“再见”,但随后开始删除错误的字符。
String str = "HiByeHiByeByByeHiHiHi";
StringBuilder sb = new StringBuilder(str);
for(int i=0; i<str.length()-2; i++){
if(str.substring(i,i+3).equals("Bye")){
sb.delete(i,i+3);
}
}
System.out.println(sb.toString());
}
答案 0 :(得分:1)
您可以使用replaceAll。
String str = "HiByeHiByeByByeHiHiHi";
System.out.println(str.replaceAll("Bye", ""));
它将打印:
HiHiByHiHiHi
答案 1 :(得分:1)
无需使用StrinBuilder,String#replace
可以执行此操作,只需使用方法replace
String str = "HiByeHiByeByByeHiHiHi";
str = str.replace("Bye", "");
System.out.println(str);
答案 2 :(得分:0)
为什么你不使用String::replace
方法,你可以一次性替换所有的事件:
str.replace("Bye", "")
所以你需要这个:
String str = "HiByeHiByeByByeHiHiHi";
System.out.println(str.replace("Bye", ""));
<强>输出强>
HiHiByHiHiHi
答案 3 :(得分:0)
代码中的一些问题
如果删除或if
更改while
String str = "HiByeHiByeByByeHiHiHi";
StringBuilder sb = new StringBuilder( str );
for ( int i = 0 ; i < sb.length() - 2 ; i++ ) {
while ( sb.substring( i, i + 3 ).equals( "Bye" ) ) {
sb.delete( i, i + 3 );
}
}
System.out.println( sb.toString() );