我必须解析一个可以假定十六进制值或其他非十六进制值的字符串
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制作一个简单的汇编程序。