-1

我正在尝试检查 java 中的字符串文件中的特定单词。

例子:

    public String test()    {
                    String text= "Your, me, everybody";

        if(!text.contains("You"))
            test1+= " and all!";
        return test1;
    }

编辑:感谢回复。但我需要的是:我有一个充满单词和逗号的文本。并且当且仅当单词 text.contains(you) 或 text.matches 时,如果该单词不在字符串中,那么它将被添加。但是,如果我尝试重新执行该示例,它会说“您”在文本中,因此不会执行test1+= “和所有!”; 在这个特定的例子中,它并没有那么危险,但是当我有一串大约 100 个单词时,有些单词非常相似。或以相同的字母开头或后面有逗号。

4

2 回答 2

3

只需使用text.contains("You")- String.contains() 将 CharSequence 作为参数。不需要正则表达式。

请注意,如果 charSequence 完全在字符串中,则例如匹配“Your”。对于这个特定的演示来说又快又脏——但我不建议这样做(除非你想要那种行为)。

您需要将 String.matches(String regex) 用于适当的正则表达式 - 如其他答案中所述。

于 2013-01-21T20:36:09.277 回答
2

首先,contains()采用文字字符串而不是正则表达式。其次,\b在字符串文字中具有特殊含义(它是退格字符)。

因此如下:

    if(!text.contains("\bYou\b"))

需要成为

    if(!text.matches(".*\\bYou\\b.*"))
于 2013-01-21T20:37:21.610 回答