java.lang.NumberFormatException 错误及解决办法
package com.geelou.test;
public class ErrTest {
public static void main(String[] args) {
String numString = "1 ";
System.out.println(Integer.parseInt(numString));
}
}
错误提示信息如下:
Exception in thread "main" Java.lang.NumberFormatException: For input string: "1 "at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)at java.lang.Integer.parseInt(Integer.java:458)at java.lang.Integer.parseInt(Integer.java:499)at com.geelou.test.ErrTest.main(ErrTest.java:6)
错误关键字 java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常,接着后面有 For input string: "1 " 提示,这就告诉我们你当前想把 "1 " 转换成数字类型时出错了,这样就很确切了。
具体是哪个类的哪个方法的哪一行的错误了,看下面错误堆栈,找自己写的第一个类com.geelou.test.ErrTest.main(ErrTest.java:6) 原来是 com.geelou.test.ErrTest 类的main方法里的第6行出错了。
这样就定位到了System.out.println(Integer.parseInt(numString));具体是 Integer.parseInt(numString) 时出的错,知道了错误地方就可以相应的解决了
解决办法很简单,改成 Integer.parseInt(numString.trim()) 就可以啦
String line3[1]= "8613719716 ";
int int1=java.lang.Integer.parseInt(line3[1]);
以上是程序中的一小段,但是在运行的过程中总是抛出异常
Exception in thread "main " java.lang.NumberFormatException: For input string: "8613719716 "
在Android中这个序列是否正确,我打算把得到的edittext中的值转换为整数.
startTime_hour_int=Integer.parseInt(startTime_hour_edittext.getEditableText().toString());
logcat 出现了如下错误. 05-12 10:26:35.536: ERROR/AndroidRuntime(293): java.lang.NumberFormatException: unable to parse '' as integer
在使用 startTime_hour_int=Integer.parseInt(startTime_hour_edittext.getEditableText().toString());之前
判断条件:
if(!startTime_hour_edittext.getText().toString().equalsIgnoreCase("")) {
startTime_hour_int=Integer.parseInt(startTime_hour_edittext.getEditableText().toString());
}
题主要做一个进制转换.并且限定范围为 30位的数 (1073741823) 或者(0111111111111111111111111111111). 问题出现在试图转换 111111111111111111111111111111的时候,出现 NumberFormatException.
此代码是检查输入如果是二进制就转换为int型数值
if (checkNumber(input)) {
try {
number = Integer.parseInt(input);
} catch (NumberFormatException ex) {
log(ex.getMessage());
}
} else {
toDecimal();
}
这是检查 String的布尔返回值方法的代码.
private static boolean checkNumber(String input) {
for (char c : input.toCharArray()) {
if (!Character.isDigit(c)) {
return false;
}
}
return true;
}
出现异常:
java.lang.NumberFormatException: For input string: "111111111111111111111111111111"
因为 Integer.parseInt(String) 默认是十进制.
所以需要使用 Integer.parseInt(String, int) 并且指定要转换的n进制的数字的n。比如二进制是2.
int value = Integer.parseInt(input, 2);
生产内容,同时打通搜索引擎(SEO)与AI搜索引擎(GEO)流量入口的软件! 点击进入365建站器 »
