1

文字列が2dim配列の一部であるかどうかを確認しようとしています。

geefNamenCatを返しますInput.readString()geefNamenCatがの一部であるかどうかを簡単に確認する方法はありTERADENWOORDEN[ ][ ]ますか?私はかなり長い間このサイトを閲覧してきましたが、1dimアレイの解決策しか見つかりませんでした(これも動作しませんでした)。

    public void catKiezen() {
        do { 
        String gekozenCat = geefNamenCat("\nKies 1 van de volgende categorieën: ");
        }
        while ( !gekozenCat.equals (TERADENWOORDEN[][]) 
    }

編集:追加するのを忘れました。do/ whileは、指定された入力が配列の一部になるまで、新しい入力を要求し続けるようにするためのものです。

4

2 に答える 2

1

あなたはこれを試すことができます:

boolean contains = false;

do {
    String gekozenCat = geefNamenCat("\nKies 1 van de volgende categorieën: ");

    for (String[] sub : Arrays.asList(TERADENWOORDEN))
        if (Arrays.asList(sub).contains(gekozenCat)) {
            contains = true;
            break;
        }

    if (! contains) {
        // print something
    }

} while (! contains);
于 2013-01-05T14:47:19.513 に答える
0

コメントに基づく:

基本的に、2つの列とx個の行があります

できれば、最初の列のみをチェックする必要があります

おそらくこれはあなたが望むものですか?

for(String[] row: ALLOWED_WORDS){
  if(input.equals(row[0])){
    found = true;
    break;
  }
}

また、同じテーブルに対して複数のクエリが必要な場合は、テーブルをハッシュセットにコンパイルすることを検討してください。

//once
HashSet<String> allowedWordList = new HashSet<String>();
for(String[] row: ALLOWED_WORDS){
  allowedWordList.add(row[0])
}

//on each check
if(allowedWordList.contains(input)){
  ...
}

また、に基づいて

配列はtxtファイルから行を読み取ります

その場合、それは定数ではなく、すべて大文字であってはなりません:ALLOWED_WORDS=>allowedWords

于 2013-01-05T14:55:29.437 に答える