2015-02-13 3 views
1

Итак, я пытаюсь взять базовые значения ввода, такие как a или b между двумя различными входами пользователя, сопоставить их и распечатать оценку для этого одного цикла, а затем распечатать совокупный общий балл. Я чувствую, что делаю это правильно, но каждый раз, когда мой балл выдает значение 0. Так что скажем, что значения ключа - a a a, а значения и - a b a. Это должно печатать значение 2 и постоянно запускаться, а также возвращать счет обратно на 0.Соответствие Java различным массивам

InputStreamReader reader = new InputStreamReader(System.in); 
    BufferedReader input1 = new BufferedReader(reader); 
    BufferedReader input2 = new BufferedReader(reader); 

    String inputValue; 
    String[] key; 
    String[] ans; 
    int totalScore = 0; 

    inputValue = input1.readLine(); 
    key = inputValue.split("\\s+"); 

    while(true){ 

     int score = 0; 

     inputValue = input2.readLine(); 
     ans = inputValue.split("\\s+"); 

     if(key[0] == ans[0]) 
      score += 1; 
     if(key[1] == ans[1]) 
      score += 1; 
     if(key[2] == ans[2]) 
      score += 1; 

     totalScore = score; 

     System.out.print(score + "\n"); 
     System.out.print(totalScore + "\n"); 
    } 

ответ

1

Вы сравниваете строки; использовать .equals() вместо ==

пример:

if (key[0].equals(ans[0])) {} 

Помните: (почти) Всегда использовать .equals() для сравнения строк.

+0

спасибо, что я должен был == –

+0

что я хочу проверить и посмотреть 'if (key [0] .equals (" a ") || ключ [0] .equals (" A ")) 'перехватывать прописные или строчные буквы? –

+0

.equalsIgnoreCase («a») поймает как A, так и – Aify