-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 + = "and all!";は実行されません。 この特定の例では、それほど危険ではありませんが、約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 に答える