Java сопоставляет разные массивы [дубликаты]

1

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

    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 ответ

1
Лучший ответ

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

пример:

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

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

  • 0
    спасибо я думал, что это должно было быть ==
  • 0
    Что это я хочу проверить и посмотреть, if(key[0].equals("a") || key[0].equals("A")) чтобы поймать прописные или строчные буквы?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню