gpt4 book ai didi

java - 如何绕过 java 中的 InputMisMatchException

转载 作者:行者123 更新时间:2023-11-29 05:54:20 25 4
gpt4 key购买 nike

我有一个文件,我在其中放入了一些数字,但后来我决定用每个数字的名称来标记这些数字,如下所示:

A = 1 2 3
B = 3 4 5
C = 6 7 8

这导致抛出异常。我想知道如何解决此问题,以便扫描仪“忽略”除数字以外的所有内容,除非我另有说明。

有人能帮忙吗?

编辑:

另外,我已经知道是什么导致了异常。我正在使用 next.Double();挑选文件中的数字。

public static void readFile() throws IOException, FileNotFoundException {

String fileName = "vectors.txt";


// Reference the file using the the BufferedReader object
BufferedReader input = new BufferedReader(new FileReader(fileName));

//scanner to scan through file
Scanner token = new Scanner(input);

double fileX = token.nextDouble();
double fileY = token.nextDouble();
double fileZ = token.nextDouble();

vecA = new Vector3D(fileX,fileY,fileZ);

fileX = token.nextDouble();
fileY= token.nextDouble();
fileZ = token.nextDouble();

vecB = new Vector3D(fileX, fileY, fileZ);

fileX = token.nextDouble();
fileY= token.nextDouble();
fileZ = token.nextDouble();

//initialize vecC using double values from third line of file
vecC = new Vector3D(fileX, fileY, fileZ);


//close file
input.close();


}

最佳答案

你不能让扫描仪自动忽略输入,但你可以自己编写代码来跳过输入,直到你看到一个 double 值可用:

while (!scanner.hasNextDouble()) {
scanner.next();
}
double d = scanner.nextDouble();

如果你需要把这段代码放在多个地方,你可以把它包装在一个函数中:

private static double skipAndGetDouble(Scanner scanner) {
while (scanner.hasNext() && !scanner.hasNextDouble()) {
scanner.next();
}
return scanner.hasNextDouble() ? scanner.nextDouble() : Double.NaN;
}

关于java - 如何绕过 java 中的 InputMisMatchException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12755760/

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