线程“main”java.util.InputMismatchException中的异常

时间:2016-10-30 03:31:35

标签: java

我正在尝试从文件中读取数据,而我正在获得上面的输入不匹配异常 这是文件中的一行数据 威利,11,9 这是从文件中读取一行的代码片段 fileScanner.useDelimiter(“,”); String firstPetName = fileScanner.next(); int firstPetAge = fileScanner.nextInt(); fileScanner.useDelimiter(“[,\\ s]”); int firstPetWeight = fileScanner.nextInt(); fileScanner.nextLine();

1 个答案:

答案 0 :(得分:0)

我使用您提供的示例运行您的代码,这就是问题所在:

当你得到下一个元素时,它返回一个带有空格" 11"的字符串。您需要先修剪它然后将其返回到整数。

以下是我运行的代码:

public static void main(String[] args) throws IOException {
         Scanner s = new Scanner("Wille, 11, 9");
         s.useDelimiter(",");
         System.out.println(s.next());
         System.out.println(Integer.valueOf(s.next().trim()));//<-- Look Here
    }

您需要在代码中更改的内容是:

int firstPetAge = Integer.valueOf(fileScanner.next().trim());

fileScanner.next().trim()将删除该空格并仅返回11,一旦您使用Integer.valueOf(s.next().trim())将您的号码转换为整数

如果有任何问题,请告诉我。