0

我正在尝试使用 Java 中的 Scanner 从文本文件中读取长类型。我收到以下错误:

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextLong(Scanner.java:2196)
at java.util.Scanner.nextLong(Scanner.java:2156)
at Project.main(Project.java:119)

这与这条线相关:

strLine = (long) in.nextLong();

如果我这样做 in.next() 它将起作用,但我需要将信息存储为长而不是字符串。它对阅读感到愤怒的确切数字是:3.20e11

有人知道怎么修这个东西吗?提前致谢!

4

2 回答 2

3

3.20e11 的双倍。

你应该做:

strLine = (long) in.nextDouble();

于 2010-09-03T15:03:51.587 回答
1

它认为 3.20e11 是双精度数,这就是您得到输入不匹配的原因。尝试输入为 320000000000 ,它将起作用。

于 2010-09-03T15:03:45.483 回答