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;
  }
}

此外,如果您希望对同一个表进行多个查询,则可以考虑将表编译为 hashSet:

//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 回答