2013-01-05 35 views
1

我試圖檢查字符串是否是2dim陣列的一部分。檢查輸入字符串是否爲2個dim陣列的一部分

geefNamenCat返回Input.readString()。有什麼方法可以讓我輕鬆檢查geefNamenCat是否是TERADENWOORDEN[ ][ ]的一部分?我一直瀏覽這個網站很長一段時間,我只找到1dim數組的解決方案(我也無法工作)。

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

編輯:我忘了補充,該做/而事情就是這樣,它會不斷地問了一個新的輸入,直到給定的輸入是陣列的一部分

+0

部分 - 在哪個方向?當作爲文本閱讀?正確還是下降?左,右,上或下?八個方向中的任何一個?它是一個矩形嗎?圓環?匈牙利人(或者是什麼)並不能幫助人們理解。 –

+0

或者它是字符串的二維數組,並且輸入必須存在於任何單元格中?我不知道你在做什麼。 –

+0

數組讀取txt文件中的行。基本上你有2列和x的行數,其中x = txtfile中的行數。謝謝 – Jente

回答

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); 
+0

無需轉換爲列表;此外,您可能會面臨未經檢查的強制轉換(Object => String [] [])(錯誤)。 –

+0

@JanDvorak這裏沒有演員。 – arshajii

+0

構建一次性HashSet似乎很浪費...... –

0

根據的評論:

Basicly你有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

+0

它實際上是從啓動時的一個文本文件讀取到最終的,所以我想我應該與全部大寫之一。讓我試試這個 – Jente

+0

All-caps通常只表示編譯時常量。不過,我的確瞭解你的想法。 –

+0

我無法得到這個工作正常,但可能是我的目標。輸入應該是geefNamenCat並且allowedWordList應該是TERADENWOORDEN對我來說正確嗎? – Jente

相關問題