2011-08-20 25 views
10
String[] letters = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "L"}; 

Scanner inp = new Scanner(System.in); 
String input = (inp.nextLine()); 
String[] cord = input.split(""); 

for(int x = 0; x < 10; x++) 
    if(letters[x] == cord[1]) 
     System.out.println("Fk yeah!"); 

Tại sao lại là Fk yeah! không bao giờ xảy ra nếu tôi nhập một chữ cái A-L?Chuỗi không bằng chuỗi?

+0

Bạn có chắc chắn 'dây 'thực sự chỉ là chữ cái và không có khoảng trắng? –

+0

cũng có thể cao hơn so với chữ thường – Jody

+0

Có, tôi chắc chắn 100%. Không, cả hai đều viết hoa. –

Trả lời

22

Chuỗi là đối tượng. Các == so sánh các đối tượng theo tham chiếu, không phải bởi giá trị nội tại của chúng.

Có 2 giải pháp:

  1. Sử dụng String#equals() phương pháp thay vì để so sánh giá trị của hai String đối tượng.

    if (letters[x].equals(cord[1])) 
    
  2. Sử dụng char thay vì String. Đó là một nguyên thủy, vì vậy == sẽ hoạt động.

    char[] letters = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'L'}; 
    
    Scanner inp = new Scanner(System.in); 
    String input = (inp.nextLine()); 
    char[] cord = input.toCharArray(); 
    
    for (int x = 0; x < 10; x++) 
        if (letters[x] == cord[1]) 
         System.out.println("Fk yeah!"); 
    
+5

bò thánh, bạn có rất nhiều huy hiệu –

+2

@ Mã: Không có gì khi so sánh với Jon Skeet. – BalusC

+0

cũng congrats một trong hai cách :) Tôi cúi đầu với bạn Sir –

11

Để so sánh Strings cho bình đẳng, không sử dụng ==. Toán tử == kiểm tra xem hai đối tượng có chính xác cùng một đối tượng hay không. Hai chuỗi có thể là các đối tượng khác nhau, nhưng có cùng giá trị (có chính xác các ký tự giống nhau trong chúng). Sử dụng phương thức .equals() để so sánh các chuỗi cho sự bình đẳng. Tương tự, sử dụng phương thức .compareTo() để kiểm tra các so sánh không bằng nhau. Ví dụ:

String s = "something", t = "maybe something else"; 
if (s == t)  // Legal, but usually WRONG. 
if (s.equals(t)) // RIGHT 
if (s > t) // ILLEGAL 
if (s.compareTo(t) > 0) // CORRECT> 
Các vấn đề liên quan