Мне нужно проанализировать строку, которая может принимать шестнадцатеричные значения или другие не шестнадцатеричные значения
0xff
, 0x31
или A
, PC
, label
и так далее.
Я использую этот код, чтобы разделить два случая:
String input = readInput();
try {
int hex = Integer.decode(input);
// use hex ...
} catch (NumberFormatException e) {
// input is not a hex, continue parsing
}
Можно ли считать этот код «некрасивым» или трудным для чтения? Есть ли другие (может быть, более элегантные) решения?
РЕДАКТИРОВАТЬ: я хочу уточнить, что (в моем случае) неправильный ввод не существует: мне просто нужно различать, является ли это шестнадцатеричным числом или нет. И для полноты картины я делаю простой сборщик для DCPU-16.