Мне нужно проанализировать строку, которая может принимать шестнадцатеричные значения или другие значения без шестнадцатеричных
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
}
Можно ли считать этот код "уродливым" или трудночитаемым? Существуют ли другие (возможно, более элегантные) решения?
EDIT: Я хочу уточнить, что (в моем случае) неверный ввод не существует: мне просто нужно различать, является ли это шестнадцатеричным номером, или нет. И только для полноты, я делаю простой assebler для DCPU-16.