2013-04-02 95 views
-1

我怎麼知道,如果串字母是等於字符數組我輸入一個字母在Java中

String[] choose = {"a","d","t","b","s","f","x"}; 
    String check; 
    boolean error = false; 

     System.out.print("Enter"); 

     Scanner sn = new Scanner(System.in);  
     check = sn.nextLine(); 
     for (int i = 0 ; i < choose.length;i++){ 

      if(choose[i] == check){ 
       System.out.print("you entered" + choose[i]); 
       break; 
      } 
     } 

我所做的這是什麼它沒有確認我輸入字母,但「您輸入」沒有顯示了。

+4

[如何做我比較字符串在java](http://stackoverflow.com/questions/513832/how-do-i-compare-strings- in-java) – Pshemo

回答

5

使用==不能測試字符串是否相等。這隻比較引用(內存地址)。您需要使用String#equals(Object)。一般而言==肯定是你不要想要如果你正在測試的平等,除非你正在檢查,看看是否有兩個變量指向相同的實例。這是很少的情況,因爲你是通常有興趣測試爲平等。

所以,你需要做的是:

if(choose[i].equals(check)) { 
    ... 
} 
+0

謝謝你的工作 – user2113792

0

您正在嘗試比較==,其中僅比較引用字符串,而不是值。你想使用的是

if(check.equals(choose[i])) 
相關問題