Exception in thread “main“ java.lang.NumberFormatException: For input string: “XXXX““
write:2022-3-18其中一种原因:在进行进制转换时,用了Integer.parseInt(),Integer.valueOf().toString(),Integer.toString()其中之一的方法进行转换确进行报错:Exception in thread “main” java.lang.NumberFormatException: For input string: “XXXX”
·
write:2022-3-18
其中一种原因:
在进行进制转换时,用了Integer.parseInt(),Integer.valueOf().toString(),Integer.toString()其中之一的方法进行转换确进行报错:Exception in thread “main” java.lang.NumberFormatException: For input string: “XXXX”",这是因为使用以上3中方法需要注意去掉需要转换的数字的进制标志位;
举例说明:
//输入一个十六进制数a,和一个八进制数b,输出a和b的十进制。
//错误代码:
String s = new Scanner(System.in).nextLine();
String[] nums = s.split(" ");
System.out.println(Integer.parseInt(nums[0],16)); //直接进行转换
System.out.println(Integer.parseInt(nums[1],8));
结果:
//正确代码:
String s = new Scanner(System.in).nextLine();
String[] a = s.split(" ");
int c = Integer.parseInt(a[0].substring(2,a[0].length()),16); //去掉标志位再进行转换
int d = Integer.parseInt(a[1].substring(1,a[1].length()),8);
int e = c+d;
System.out.println(c+"\n"+d);
结果:
更多推荐
所有评论(0)