Если я правильно понимаю ваш код, проблема в том, что вы пытаетесь получить значение с помощью pair.get(a)
, используя другое значение a
(которое может даже не существовать, поскольку оно зависит от ввода пользователя!).
Предполагая, что вы все еще хотите достичь этой функциональности, вам нужно что-то в этом роде.
// Get the key referenced by a (if exists)
var aKey = pair.entrySet()
.stream()
.filter(entry -> a.equals(entry.getValue()))
.map(Map.Entry::getKey)
.findFirst();
// If the key for value a does not exist, print incorrect input (you can handle this however you like), otherwise print original statement
if (aKey.isEmpty()) {
System.out.println("Incorrect input!");
} else {
System.out.println(a.equals(pair.get(values[retur])) ? "Correct answer." :
"Wrong answer. The correct one is \"" + pair.get(values[retur]) +
"\", you've just written the definition of \"" + pair.get(aKey.get()) + "\".");
}