从字符串中删除特定单词

时间:2012-05-19 01:01:26

标签: java replace

我正在尝试使用函数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"

如何只替换字符串中的整个单词?

5 个答案:

答案 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;  
}