世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。
以下是hutool中对parseInt的实现,如果以0x开头会自动认为是16进制并转化,对于这点我并不是太认同,我还是认为最纯粹的使用起来会最精确。万一失手写错了却返回一个转化16进制后的值,这种错误在实际中是很难排查的。
public static int parseInt(String number) throws NumberFormatException {
if (StrUtil.isBlank(number)) {
return 0;
} else {
number = StrUtil.subBefore(number, '.', false);
if (StrUtil.isEmpty(number)) {
return 0;
} else {
return StrUtil.startWithIgnoreCase(number, "0x") ? Integer.parseInt(number.substring(2), 16) : Integer.parseInt(removeNumberFlag(number));
}
}
}