gpt4 book ai didi

java - 使用 Java 中的 Scanner 读取文件时出现 InputMismatchException

转载 作者:行者123 更新时间:2023-12-01 13:14:57 26 4
gpt4 key购买 nike

我需要有关学校计划的帮助。我已经收到这个错误几天了,但不知道问题出在哪里。我正在从文件中读取信息,由于某种原因,我收到以下错误:

好的,所以我的代码中不断出现以下错误:

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.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at EmployeeWithFiles.readInputFile(EmployeeWithFiles.java:22)
at CompanyWithFilesDemo.main(CompanyWithFilesDemo.java:28)

我知道错误出现在 readInputFile 中...这是我读取输入的方法:

public void readInputFile(Scanner inputStream)
{
setFirstName(inputStream.nextLine());
setLastName(inputStream.nextLine());
setNumberOfDependents(inputStream.nextInt());
setHourlyRate(inputStream.nextDouble());
setHoursWorked(inputStream.nextDouble());
setLocalTaxWithheldToDate(inputStream.nextDouble());
setFederalTaxWithheldToDate(inputStream.nextDouble());
setStateTaxWithheldToDate(inputStream.nextDouble());

}

这是我的输入文件:

jim
jackson
3
14.50
55.50
515.00
6010.00
2163.00
jim
jackson
3
14.50
55.50
515.00
6010.00
2163.00
jim
jackson
3
14.50
55.50
515.00
6010.00
2163.00

最佳答案

我几乎肯定问题是由于 nextIntnextDouble 之一未传递到下一行而发生的。因此,在某些时候,您可能会尝试读取 double 型(当它是字符串时),反之亦然。这就是 InputMismatchException 发生的地方。

您可以通过逐行读取并在必要时进行解析来避免此问题。让生活更轻松。

setNumberOfDependents(Integer.parseInt(inputStream.nextLine().trim()));
setHourlyRate(Double.parseDouble(inputStream.nextLine().trim()));
...

关于java - 使用 Java 中的 Scanner 读取文件时出现 InputMismatchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22541720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com