我在创建一个程序时遇到问题,该程序会在文本文件中发现错误并打印错误所在的行,并且还会打印错误所在的行号。它正在寻找的错误是每行上是否有6个单词/数字,否则会出现错误
例如:
文本文件
命名品种月份日重量
命名品种月
命名品种月份日重量
***文件中的错误行:
命名品种月 第2行出错:字段数应为6,而不是3. *
int numline= 0;
while(sc.hasNextLine())
{
// read a line from the input file via sc into line
line = sc.nextLine();
try{
StringTokenizer stk = new StringTokenizer(line);
String name = stk.nextToken();
String breed = stk.nextToken();
int month = Integer.parseInt(stk.nextToken());
int day = Integer.parseInt(stk.nextToken());
int year = Integer.parseInt(stk.nextToken());
double weight = Double.parseDouble(stk.nextToken());
numline++;
Dog list = new Dog(name, breed, month, day, year, weight);
dogs.add(list);
}
catch(Exception missError)
{
System.out.println("Error Lines detected in file:");
System.out.println("Number of fields on line must be 6");
}
}
// close the file
sc.close();
System.out.println(numline);
答案 0 :(得分:0)
将numLine++
作为try
块中的第一行,并在catch
块中使用该行。还可以使用返回line.split("\\s+");
的{{1}},然后您就会知道前面的字段数,然后您不需要依赖String[]
。
Exception