2012-03-16 22 views
-3

確定,所以我有這樣的和平代碼Java--如何比較1個數組和1個字符串?

和內部的,如果有此而

  while (true) { 

        if (stringarray[1][a].equals(string2)) { 
        STUFF 


           } 
     a++ 

的問題是,(字符串數組[1] [A] .equals(字符串2))不工作,我不知道爲什麼,或者我該如何解決它。當它們是整數時,它可以工作,或者因爲我可以做arraystuff [0] [a] ==變量,所以它可以工作,但它不適用於字符串,我做錯了什麼?感謝您的幫助

編輯:好,所以這是原來的(yep數組有117個不同的值) 數組(String stringarray [] [] = new String [2] [117]) 一個(整數,從0開始)串串=新的String( 「」)字符串字符串2 =新的String( 「」)

  string = stdIn.readLine(); 

      while (true) { 
        if (stringarray[0][a].equals(string)) { 
         break; 
        } 
        a++; 
        if (a == 118) { 
         break; 
        } 
      } 
     } 

如果我把一個的System.out.println(一) 一個即使在「字符串」中的文本是正確的,它應該是118,並且它應該早已停止

但是如果什麼是while/if是數值va lue(例子2)的代碼工程和一個顯示號碼

然後一個將是我正在尋找的數字。 例如,如果我在第一個代碼中輸入文本hi,並且文本hi在數字[0] [15]中,那麼a將是15,但它不會發生,如果我輸入482並且數字爲[0] [34627]則是真正34627.希望這有助於

+5

定義「不起作用」。 – 2012-03-16 01:54:50

+1

你需要提供一些更多的細節。像你的數組的內容或者它們是如何被定義的 – 2012-03-16 01:55:41

+0

嘗試打印出字符串的值來看看它是什麼。 – L7ColWinters 2012-03-16 02:21:55

回答

1
String txt1 = "abc"; 
    String txt2 = "ABC"; 
    if(txt1.compareTo(txt2)==0) 
     System.out.println("Equal and same case"); 
    else if(txt1.compareToIgnoreCase(txt2)==0) 
     System.out.println("Equal but may not be same case"); 
    else 
     System.out.println("Not equal"); 

希望這有助於

+0

我試過了,它說不兼容的類型 – 2012-03-16 02:17:26

+1

compareTo()比'equals()'更好嗎? – BalusC 2012-03-16 02:47:58

2

equals應該工作,但它是區分大小寫。對於不敏感的情況,請嘗試equalsIgnoreCase

另外我想知道如果你只使用索引0,那麼你爲什麼要創建String [2][117]。您可以輕鬆創建String stringarray [] = new String [117]。這隻有在你根本沒有使用索引1的情況下。

1

請給出關於你的字符串數組的更多細節。 此外,如果您將數組定義爲:String stringarray [] [] = new String [2] [117],那麼a怎麼可能是118?當a是117時,它應該拋出OutOfBoundsException ....

+0

如果您注意到計數器停留在搜索代碼中,所以如果點擊117並且搜索無法找到某種東西(觸發中斷),它會一直跟隨if == 118打破一會兒,並且不允許執行新的循環並且因此OutOfBounds從未發生過,它關於訂單的所有內容; D – 2012-03-16 05:07:36