java - 数字系统代码中的 Java 数字格式异常错误
问题描述
我正在做一个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));
}
}
解决方案
如果要解析十六进制数字,则必须使用的双参数版本valueOf
,将基数(十六进制为 16)指定为第二个参数
int intNum = Integer.valueOf(numHexadecimal, 16);
推荐阅读
- javascript - 使用jQuery和Ajax在href中捕获和发送参数
- css - Background-repeat-x/y 在 Firefox/Safari 中不起作用
- svelte - SvelteJS:将数据传递给组件
- protocol-buffers - 使用 Apache Beam 在镶木地板中编写 protobuf 对象
- excel - vba如何读取和存储LTPA?
- mysql - mysqli 选择两个表 - 速度优化
- html - 如何使用点网语言区分二进制文件和文本文件
- sql-server - 最后一个工作日的 MS SQL 高级作业调度
- drupal - Drupal 预处理一个商务功能
- java - GridPane,行投影到另一行