使用java文本文件中的错误数据
我正在编写一个程序,读取一个txt文件,然后输出好数据和坏数据的数量,好数据是任何非负整数,坏数据是任何其他数据。使用java文本文件中的错误数据,java,Java,我正在编写一个程序,读取一个txt文件,然后输出好数据和坏数据的数量,好数据是任何非负整数,坏数据是任何其他数据。 但是,如果我的程序遇到字符串,我不确定如何使用并移动到下一段数据。在遇到int时循环检查: import java.io.*; import java.util.*; public class DemoEx { public static void main(String[] args) throws IOException { Scanner in =
但是,如果我的程序遇到字符串,我不确定如何使用并移动到下一段数据。在遇到int时循环检查:
import java.io.*;
import java.util.*;
public class DemoEx {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(new FileReader("BP.txt"));
int badData = 0;
int goodData = 0;
while (in.hasNext()) {
try {
int value = in.nextInt();
if (value < 0)
throw new BPIllegalValueException("value cannot be less than zero");
else goodData++;
} catch (InputMismatchException ex) {
// Consume badData
badData++;
} catch (BPIllegalValueException ex) {
badData++;
}
}
System.out.println("gooddata" + goodData);
System.out.println("baddata" + badData);
}
}
public class BPIllegalValueException extends Exception {
BPIllegalValueException(String message){
System.out.println(message);
}
}
你说的消费是什么意思?你很可能想升级到另一个令牌。阅读文档后,您会得到以下答案:
下一个方法将允许您转到下一个令牌…将其作为字符串读入。如果它与数字0-9+匹配,那么它是好的。否则就不好了。请格式化代码,使用缩进和更少的空行。现在的代码很难读懂。您似乎已经在使用无法在catch块成功解析为整数的字符串了?
if (in.hasNextInt()) {
... all
} else {
++badData();
in.next();
}