我有一个文本文档,其中包含由“|”表示的数字列表。 例如:
0|0|2
1|0|1
1|1|0
2|0|1
2|1|0
2|2|1
3|0|0
3|1|1
3|2|0
3|3|1
我正在生成这个代码,并且所有方法的底部都有一行额外的代码。我知道我将始终拥有这一行,并相应地编写了我的代码,在创建 int 数组时使用 -1 值。问题是当我编辑文件后有两行而不是一行时。除了进入文件删除额外的行之外,我希望代码能够忽略这个问题。 我当前的代码无需额外的行即可工作:
while(scc.hasNextLine()){
String[] temp = scc.nextLine().split("\\|");
for(int j = 0; j < 3; j++){
arr[points][j] = Integer.parseInt(temp[j]);
}
points++;
}
sdcc.close();
当底部只有一行时,此方法有效且没有例外。但是当有两个时,我会因为有一个没有整数的空行而出现“NumberFormatException”。
我无法分享我的所有代码,因为它非常大并且使用多个客户函数。感谢您提供的任何帮助。
我尝试使用以下方法捕获异常:
while(scc.hasNextLine()){
String[] temp = scc.nextLine().split("\\|");
for(int j = 0; j < 3; j++){
try{
arr[points][j] = Integer.parseInt(temp[j]);
}
catch (NumberFormatException ignore){}
}
points++;
}
scc.close();
当忽略这两个值时,这会生成一个新的错误“ArrayIndexOutOfBoundsException”,我的输出将变成只有一行代码而不是数字列表。
如果您只想忽略空行,请检查行的长度。
String line = scc.nextLine() ;
if ( ! line.isEmpty() )
{
String[] temp = line.split("\\|");
…
}