我正在尝试使用函数replace()
或replaceAll()
删除特定字符串中的特定单词,但这些单词会删除该单词的所有出现,即使它是另一个单词的一部分!
示例:的
String content = "is not like is, but mistakes are common";
content = content.replace("is", "");
输出 "not like , but mtakes are common"
所需的输出: "not like , but mistakes are common"
如何只替换字符串中的整个单词?
答案 0 :(得分:42)
到底是什么,
String regex = "\\s*\\bis\\b\\s*";
content = content.replaceAll(regex, "");
请记住,您需要使用replaceAll(...)
来使用正则表达式,而不是replace(...)
\\b
为您提供单词边界\\s*
会删除要删除的字词两边的任何空格(如果你想删除它的话)。答案 1 :(得分:5)
content = content.replaceAll("\\Wis\\W|^is\\W|\\Wis$", "");
答案 2 :(得分:0)
您可以尝试用“”替换“is”。带有前后空格,后面有一个空格。
更新
为使其适用于句子中的第一个“是”,还要为“”执行另一个“是”的替换。用第一个空格替换第一个空格。
答案 3 :(得分:0)
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String input = s.nextLine();
char c = s.next().charAt(0);
System.out.println(removeAllOccurrencesOfChar(input, c));
}
public static String removeAllOccurrencesOfChar(String input, char c) {
String r = "";
for (int i = 0; i < input.length(); i ++) {
if (input.charAt(i) != c) r += input.charAt(i);
}
return r;
}
}
答案 4 :(得分:-1)
public static void main(String args[]) {
String str = "is not like is, but mistakes are common";
System.out.println(removeWord(str,"is"));
}
public static String removeWord(String str,String rWord){
//check if the removing word is present in the String
if(str.contains(rWord){
//this will replace the word containing space in the end
String x =rWord+" ";
str = str.replaceAll(x,"");
//this will replace the word containing space in the beginning
x= " "+rWord;
str = str.replaceAll(x,"");
}
return str;
}