【发布时间】:2017-04-28 02:21:57
【问题描述】:
我无法将字符串解析为原语。
File file1 = new File("bankData.txt");
Scanner sc = new Scanner(file1);
while (sc.hasNext())
{
char c = sc.next().charAt(0);
if(c == 's')
{
long l = Long.parseLong(sc.next().trim());
String s1 = sc.next().trim();
String s2 = sc.next().trim();
// Line 248 int in = Integer.parseInt(sc.next().trim());
String s3 = sc.next().trim();
double d1 = Double.parseDouble(sc.next().trim());
double d2 = Double.parseDouble(sc.next().trim());
System.out.println(s1);
System.out.println(l);
System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(in);
System.out.println(d1);
System.out.println(d2);
}
}
以下代码正在生成
bankData.txtjava.lang.NumberFormatException: For input string: "6131231234"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at bank.Bank.readFile(Bank.java:248)
这是我的程序试图读取的 bankData.txt 文件。
s 1001 John Doe 6131231234 john@john.com 1000.00 0.01 200.00
起初我认为空格是导致问题的原因,但正如您所见,我已经修剪了扫描仪返回的所有字符串,试图消除这种情况,但没有成功。看来原始变量long l = Long.parseLong(sc.next().trim());
String s1 = sc.next().trim();
String s2 = sc.next().trim();
被成功分配;我尝试在 Eclipse 调试器中确认这一点,但它只是跳过了断点(有什么见解吗?)。 Java SE8 NumberFormatExceptionStates
抛出表明应用程序已尝试将字符串转换为其中一种数字类型,但该字符串没有适当的格式。
不知道从这里去哪里。
在此先感谢您的努力。
【问题讨论】:
-
但它只是跳过了断点看起来你还没有编译最新版本,调试器正在使用旧代码
标签: java numberformatexception