检查输入字符串是否是2 dim数组的一部分

时间:2013-01-05 14:38:35

标签: java multidimensional-array compare contains

我正在尝试检查字符串是否是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事情是这样的,它会一直要求新的输入,直到给定的输入是数组的一部分

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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 =&gt; allowedWords