我正在做一个java数字转换器,每当我尝试十六进制到十进制转换器时,它总是为我输入想要转换的内容提供一个java.lang.NumberFormatException
。每当我输入字符串值(例如 ABC)时,控制台都会显示此错误。我将如何修复这个错误?错误发生在代码中的这一行:int intNum = Integer.valueOf(numHexadecimal);
。
public static void hexToDecimal() {
System.out.println("Enter your hexadecimal number");
numHexadecimal = input.next();
hexArray = numHexadecimal.toCharArray();
int intNum = Integer.valueOf(numHexadecimal);
int counter = 0;
String hexVal = "";
int digit;
digit = intNum % 16;
switch (digit) {
case 1:
hexVal+="F"; break;
case 2:
hexVal+="E"; break;
case 3:
hexVal+="D"; break;
case 4:
hexVal+="C"; break;
case 5:
hexVal+="B"; break;
case 6:
hexVal+="A"; break;
default:
hexVal+=Integer.toString(digit);
}
intNum = intNum/16;
for (counter = hexVal.length()-1; counter >= 0; counter--)
System.out.print(hexVal.charAt(counter));
}
}
最佳答案
如果你想解析十六进制数字,你必须使用 the two-parameters version of valueOf
,指定基数(16 为十六进制)作为第二个参数
int intNum = Integer.valueOf(numHexadecimal, 16);
关于数字系统代码中的Java数字格式异常错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59992018/