0

メソッドを使って簡単なコードを書いているのですが、メソッドcontains()の引数に文字列配列を入れてcontains()もプログラムが何もしない(エラーが出ない)のが問題です。したがって、1 つの文字列配列をループして、2 番目の配列の要素が含まれているかどうかを調べるだけです。引数に1つの単語を入れてみましたが、うまくいきました。配列はnullではなく、印刷できます。それで、何か提案はありますか?

これはコードの一部です:

        for(int i = 0; i < farbe.length; i++) {
            for(int j = 1; j < names.length; j++) {
                if(names[j].contains(farbe[i])) {
                    System.out.println(names[j]+"\t"+"yes");
                }
            }
        }

配列要素は .*txt ファイルから読み取られます。したがって、'names' 配列には単語シーケンスが含まれ、'color' 配列には色が含まれます。配列のパーツ:

名前:

Herrenlederjacke >>Collins
Herrenstoffjacke >>M H7 4B
9-LV (schwarz | 54)
9-LV (schwarz | 52)
Tunika-Lederkleid >>9519

色:

ベージュ
ブラウン
シュヴァルツ

配列が大きいので、ほんの一部だけ入れました。

4

2 に答える 2

1

問題は、Java 配列がインデックス 0 から始まることかもしれません。また、中括弧が含まれている行に間違って配置されています。試す :

for(int i = 0; i < farbe.length; i++){
    for(int j = 0; j < names.length; j++){
            if(Arrays.asList(names[j].contains(farbe[i]))){
                System.out.println(names[j]+"\t"+"yes");
            }
                             }
于 2013-03-21T12:48:18.160 に答える
0

ファイルの各行が配列内の個別の要素であると仮定すると、

String[] names={
        "Names:",
        "Herrenlederjacke >>Collins",
        "Herrenstoffjacke >>M H7 4B",
        "9-LV (schwarz | 54)",
        "9-LV (schwarz | 52)",
        "Tunika-Lederkleid >>9519"
};
String[] farbe={
        "beige",
        "braun",
        "schwarz",
};

namesこのコードを使用して、どの色が存在するかを確認できます

for (String color : farbe) {//will iterate over all colors
    namesLoop:
    for(String name :names){//will iterate over all names
        if (name.contains(color)){
            System.out.println(color+"\t yes");
            break namesLoop;//we found this color, we can skip to next one
        }
    }
}
于 2013-03-21T13:51:13.557 に答える