Перехват ошибок в Java Hashmap - PullRequest
0 голосов
/ 06 февраля 2020

В предыдущем вопросе мне было дано несколько советов о том, как отображать символы в числа. В приведенном ниже коде я могу использовать Hashmap, чтобы приписать число «2» к «a».

Integer number = characters.get(ch[r]);

Map<Character, Integer> characters = new HashMap<>();
characters.put('a', 2);
characters.put('b', 2);
characters.put('c', 2);
characters.put('d', 3);
characters.put('e', 3);
characters.put('f', 3);

Можно ли закодировать все для Hashmap, так что если, скажем, введен символ Z, я может поймать это без сбоя кода. По сути, я хочу иметь возможность кодировать, что, если введен какой-либо символ, отличный от af, я могу его поймать раньше, чем cra sh.

Ответы [ 2 ]

3 голосов
/ 06 февраля 2020

Вы можете использовать метод getOrDefault, чтобы получить значение по умолчанию для любого значения, которое не находится между a и f:

Integer number = characters.getOrDefault(userInput, 0 /* or some other default */);
2 голосов
/ 06 февраля 2020

Существует Java 8 функция для обработки таких случаев:

characters.getOrDefault("Z", -1);

значение -1 будет представлять неизвестные символы, которых нет на вашей карте.

...