0

に対して複数の引数を持つことは可能.containsですか? それぞれに複数の文字のいずれかが含まれarrayていることを確認するために を検索しています。string私はウェブ全体を探しましたが、有用なものは何も見つかりませんでした。

        for(String s : fileContents) {
            if(!s.contains(syntax1) && !s.contains(syntax2)) {
                found.add(s);
                }
            }           

        for (String s : found) {
            System.out.println(s);      // print array to cmd
        JOptionPane.showMessageDialog(null, "Note:  Syntax errors found.");
            }

複数の引数でこれを行うにはどうすればよいですか? 私もたくさんの||s を自分で試しましたが、それもうまくいかないようです。

4

3 に答える 3

1

いいえ、複数の引数を持つことはできませんが、機能する||はずです。

!s.contains(syntax1+"") || !s.contains(syntax2+"")を含まない、またはs含まないことを意味します。syntax1syntax2

これは単なる推測ですが、次sの 2 つのいずれかを含めることができます。

s.contains(syntax1+"") || s.contains(syntax2+"")

またはs両方が含まれている可能性があります。

s.contains(syntax1+"") && s.contains(syntax2+"")

またはs、次の 2 つのどちらも含まれていない可能性があります。

!s.contains(syntax1+"") && !s.contains(syntax2+"")

syntax1 と syntax2 がすでに文字列の場合、+""'s は必要ありません。

常にtrueを返す必要があると思うs.contains("")ので、削除できます。

于 2013-08-05T22:48:29.950 に答える
1

あなたが説明したことは正規表現でできるようです。

正規表現では、演算子|は、いくつかの選択肢のいずれかに一致する必要があることを示します。

たとえば、正規表現(a|b)は a または b を意味します。
正規表現".*(a|b).*"は、aまたはbを含む文字列を意味し、それ以外はすべてOKです(1行の文字列を想定していますが、必要に応じて簡単に処理できます)。

コード例:

    String s = "abc";
    System.out.println(s.matches(".*(a|d).*"));
    s = "abcd";
    System.out.println(s.matches(".*(a|d).*"));
    s = "fgh";
    System.out.println(s.matches(".*(a|d).*"));

正規表現は、学習することをお勧めする強力なツールです。このチュートリアルをご覧ください。役に立つかもしれません。

于 2013-08-05T22:48:33.723 に答える
0

複数含まれるということはありません。

文字列のリストが他の文字列に含まれていることを検証する必要がある場合は、それらすべてを繰り返して確認する必要があります。

public static boolean containsAll(String input, String... items) {

    if(input == null) throw new IllegalArgumentException("Input must not be null"); // We validate the input


    if(input.length() == 0) {
        return items.length == 0; // if empty contains nothing then true, else false
    }

    boolean result = true;

    for(String item : items) {
        result = result && input.contains(item);
    }

    return result;
}
于 2013-08-05T22:57:35.933 に答える