螺纹“中的异常;主&x201D;java.util.InputMismatchException

螺纹“中的异常;主&x201D;java.util.InputMismatchException,java,Java,我试图从一个文件中读取数据,我得到了上面的输入不匹配异常 下面是文件中的一行数据 fileScanner.useDelimiter(",") ; String firstPetName = fileScanner.next() ; int firstPetAge = fileScanner.nextInt() ; fileScanner.useDelimiter("[,\\s]") ; int firstPetWeight = fileScanner.nextInt() ; fileScanne

我试图从一个文件中读取数据,我得到了上面的输入不匹配异常

下面是文件中的一行数据

fileScanner.useDelimiter(",") ;
String firstPetName = fileScanner.next() ;
int firstPetAge = fileScanner.nextInt() ;
fileScanner.useDelimiter("[,\\s]") ;
int firstPetWeight = fileScanner.nextInt() ;
fileScanner.nextLine();
威利,11岁,9岁

下面是一段从文件中读取一行的代码

fileScanner.useDelimiter(",") ;
String firstPetName = fileScanner.next() ;
int firstPetAge = fileScanner.nextInt() ;
fileScanner.useDelimiter("[,\\s]") ;
int firstPetWeight = fileScanner.nextInt() ;
fileScanner.nextLine();

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

当您获取下一个元素时,它返回一个带有空格的字符串
“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
    }
fileScanner.next().trim()
将删除空格并仅返回
11
,一旦您有了数字,请使用
Integer.valueOf(s.next().trim())将其转换为整数。


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

您的输入是什么?当您使用
fileScanner.nextInt()
时,您需要一个整数。如果您的输入不是整数,它将引发此异常。由于您在
上进行拆分,
您的第一个数字将是
“11”
,并且这不是一个有效的数字。输入是文本文件中的数据,我正在读取以“Willie”开头的单行是的,我知道,您下一步会尝试读取吗?