【发布时间】:2014-03-08 21:29:55
【问题描述】:
我正在处理一项被分解为不同方法的任务,而我目前被困在其中一种方法上。
我应该从格式如下的文件中读取数据:
46813 5 100.00
第一个数字是 0 到 99999 之间的整数,第二个是 0 到 5 之间的整数,最后一个数字是 0.00 到 100.00 之间的双精度数。
这是我应该读取输入并保存数据中的任何错误的方法的代码。例如,数字 6 如果它出现在第二列,依此类推。现在我正在使用println 在尝试保存任何值之前查看我的数据是否被正确捕获,但我几乎一无所知。
我已经坚持了好几个小时做了几件不同的事情,但我永远无法接近。如果有更简单的方法来完成所有这些,请告诉我。我愿意学习。
我正在读取的文件:
46813 5 100.00
80795 4 86.52
34961 3 77.52
40059 2 85.61
80463 1 70.16
64088 0 80.52
65400 6 90.23
80775 2 70.16
573S1 3 83.03
21076 4 54.47
32911 5 -10.90
代码:
public static void validateData() throws IOException {
File myfile = new File("gradeInput.txt");
Scanner inputFile = new Scanner(myfile);
int b = 0;
double f = 0;
for (int i = 1; i < 12; i++) {
int a = inputFile.nextInt();
if (a < 0 || a > 99999) {
b = a;
System.out.println(b);
}
int c = inputFile.nextInt();
if (c < 0 || c > 5) {
b = c;
System.out.println(c);
}
double d = inputFile.nextDouble();
if (d < 0 || d > 100.00) {
f = d;
System.out.println(f);
}
}
}
【问题讨论】:
-
能否为“gradeInput.txt”提供 3 或 4 行示例?
-
46813 5 100.00 80795 4 86.52 34961 3 77.52 40059 2 85.61 80463 1 70.16 64088 0 80.52 65400 6 90.23 80775 2 70.23 80.52 65400 6 90.23 573S1 3 90.23 573S1 3 83.03 573S1 3 83.03 21076 4 50.23 21076 4 54.03 21076 4 54.03 21076 4 54.03 21076 4 54.03 21076 4 54.03 21076 4 54.03 21076 4 54.47 32911 5 -10.90我会尝试添加它到帖子。
-
这个包含一个字母 - 573S1,它是什么?你也有负面影响。这与您对格式的文字描述不太匹配。
-
@peter.petrov 这些将被视为我需要保存的错误。如果我之前不够清楚,我很抱歉。
-
好的,我明白了。请参阅下面如何检查此类验证错误。
标签: java validation