Java for循环中的IndexOf仅删除一个字符
我想在for循环中使用IndexOf,这样我就可以删除短语中单词/字符的所有实例,但我的代码只删除第一个实例,即使我认为它应该删除其他实例。 这是我的密码:Java for循环中的IndexOf仅删除一个字符,java,Java,我想在for循环中使用IndexOf,这样我就可以删除短语中单词/字符的所有实例,但我的代码只删除第一个实例,即使我认为它应该删除其他实例。 这是我的密码: String phrase = "yes no YES NO"; String del = "no"; for (int i=0;i<phrase.length();i++) { if (phrase.indexOf(del) == i) {
String phrase = "yes no YES NO";
String del = "no";
for (int i=0;i<phrase.length();i++) {
if (phrase.indexOf(del) == i) {
System.out.print("");
}
else
System.out.print(phrase.charAt(i));
}
我要我的密码给我
yes YES
但我不明白为什么indexOf只删除一个字符,我也不明白如何使用.equalsIgnoreCase和我的字符串来删除“否”。我应该如何更改代码以获得此答案?试试以下方法:
String newPhrase = phrase.replaceAll(del," ");
然后打印新短语
此外,“no”和“no”是两个不同的值。一个是大写,另一个是小写。因此,如果您不希望代码区分大小写,则需要在“短语”的小写字母中检查“del”的小写字母。尝试以下方法:
String newPhrase = phrase.replaceAll(del," ");
然后打印新短语
此外,“no”和“no”是两个不同的值。一个是大写,另一个是小写。因此,如果您不希望代码区分大小写,则需要在“短语”的小写部分检查“del”的小写部分。
indexOf
用于在字符串中查找特定的字符。如果要删除字符串中的特定值,我建议使用replaceAll
方法
另外,请注意indexOf
和replaceAll
都区分大小写。这意味着“no”和“no”是不同的,因为“no”是大写的(这也是“no”保持不变的原因)
使用
target.replaceAll((?i)“+Pattern.quote(“text”),”)
用于不区分大小写的变体(如后文所述)。indexOf
用于在字符串中查找特定的字符。如果要删除字符串中的特定值,我建议使用replaceAll
方法
另外,请注意indexOf
和replaceAll
都区分大小写。这意味着“no”和“no”是不同的,因为“no”是大写的(这也是“no”保持不变的原因)
使用target.replaceAll((?i)“+Pattern.quote(“text”),”)代码>用于不区分大小写的变体(如后文所述)