2015-02-11 131 views
0

我在Java中遇到了麻煩。Java:如何使用子串讀取數組中的字符串

我想讀取if Statement中使用子字符串的數組的字符串。

我想知道index[0]這個「P」的第一個字符串是什麼,那麼它會打印一些東西。

但我的代碼有問題。

public static void main (String[] args){ 

String someArr[] = new String[] {"P 2 #rock", "Q 1 #paper "}; 

for(int x = 0; x <= someArr.length; x++) { 

    if (someArr[0].substring(0,1) == "P") { 

     System.out.println(someArr[0] + " " + "Select something"); 

    } 

    else if (someArr[1].substring(0,1) == "Q"){ 

     System.out.println(someArr[1] + " " + "Select paper"); 

    } 

    } 

} 
+2

您應該使用的charAt和比較字符,而不是字符串。 – Stultuske 2015-02-11 12:09:35

+1

它也應該是someArr [x],而不是0和1,並且您的for循環應該在迭代數組時使用「<」而不是「<=」。 – thedoctor 2015-02-11 12:11:48

回答

0

使用'equals()'而不是'=='。您正在比較參考...

+0

非常感謝。感謝您回答我的問題。問題解決了。 – bracket17 2015-02-11 13:37:28

0

在您的代碼中,您總是閱讀第一個和第二個條目。 嘗試在循環中使用x變量。 FE

public static void main (String[] args){ 

String someArr[] = new String[] {"P 2 #rock", "Q 1 #paper "}; 

for(int x = 0; x <= someArr.length; x++) { 

    if (someArr[x].substring(0,1).equals("P")) { 

     System.out.println(someArr[x] + " " + "Select something"); 

    } 

    else if (someArr[x].substring(0,1).equals("Q")){ 

     System.out.println(someArr[x] + " " + "Select paper"); 

    } 

    } 

} 
+1

最好使用equals()而不是== – 2015-02-11 12:12:44

+0

非常感謝。感謝您回答我的問題。問題解決了。 – bracket17 2015-02-11 12:31:47

0

您應該使用x作爲索引。

public static void main (String[] args){ 
    String someArr[] = new String[] {"P 2 #rock", "Q 1 #paper "}; 

    for(int x = 0; x <= someArr.length; x++) { 
     switch (someArr[x].substring(0,1)) { 
     case "P": 
      System.out.println(someArr[x] + " " + "Select something"); 
      break; 
     case "Q": 
      System.out.println(someArr[x] + " " + "Select paper"); 
      break 
     } 
    } 
} 

switch字符串只在Java 7

+0

最好使用equals()而不是== – 2015-02-11 12:13:32

+0

非常感謝。感謝您回答我的問題。問題解決了。 – bracket17 2015-02-11 13:37:13

1

是合適的。在Java對象之間使用的運算符「==」返回true,當且僅當這兩個變量引用完全相同的對象。

當你聲明字符串「P」時,你實際上創建了一個新的對象,它不能與數組中的子字符串相同。要檢查「語義平等」,您需要使用.equals()。

if (someArr[0].substring(0,1).equals("P")) 

應該有結果,你希望

+0

好。我正在輸入相同的答案。 – 2015-02-11 12:13:56

+0

非常感謝。感謝您回答我的問題。問題解決了。 – bracket17 2015-02-11 12:30:55

相關問題