【发布时间】:2017-11-01 04:48:16
【问题描述】:
每次出现在字符串中时,我都会尝试删除“再见”这个词。它在第一次出现“Bye”时有效,但随后开始删除错误的字符。
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());
}
【问题讨论】:
-
您正在更改字符串,因为它正在被 for 列表迭代,因此它的长度和字符的位置在您执行此操作时会发生变化。
-
你最好这样做
"HiByeHiByeByByeHiHiHi".replaceAll("Bye", "") -
哎呀:“你是”!
-
建议:学习阅读Javadoc。略读Javadoc 以了解
java.lang和java.util中的所有 类,并完整阅读看起来有用的类。这肯定包括String。如果你坚持使用 Java,你最终会读完所有这些,所以你可能会开始,你会发现String.replaceAll() -
@slim 感谢您的建议,
标签: java string replace substring