Java 如何在某些行之后停止扫描仪

Java 如何在某些行之后停止扫描仪,java,java.util.scanner,Java,Java.util.scanner,我正在做一个程序,要求扫描仪读取一定数量的行,但是,它不会在达到该数字后停止。以下是处理此部分的代码: for(int i=0;i<normal;i++) { int x=0; int y=0; String ans=in.nextLine(); int[] arraya=createaarray(ans); x=arraya[0]; y=arraya[1];

我正在做一个程序,要求扫描仪读取一定数量的行,但是,它不会在达到该数字后停止。以下是处理此部分的代码:

for(int i=0;i<normal;i++)
     {
         int x=0;
         int y=0;
         String ans=in.nextLine();
         int[] arraya=createaarray(ans);
         x=arraya[0];
         y=arraya[1];
         matrix[x][y]=true;
     }

for(int i=0;i假设您的
createaarray
方法返回
empty
null
数组,如果输入无效,则需要在执行其余代码之前添加
if
条件,以确保获得有效的
数组,例如:

if(null != arraya && arraya.length > 1){
    x=arraya[0];
    y=arraya[1];
    matrix[x][y]=true;
}
此外,一旦完成,您可以通过调用
close()
方法关闭
扫描仪。

如果“normal-1”是要读取的行数,那么您应该将循环“normal-1”迭代几次。在您的代码中,我看到您以0开始,以“normal”结束。数组的迭代完全是“normal”时间。应该这样做:

for(int i=0 ; i < normal - 1; i++) {
     int x = 0;
     int y = 0;
     String ans = in.nextLine();
     int[] arraya = createaarray(ans);
     x = arraya[0];
     y = arraya[1];
     matrix[x][y] = true;
 }
for(int i=0;i
检查
ans
是否为空,例如
ans.isEmpty()
?显示整个代码。您可以从Apache库使用。
for(int i=0 ; i < normal - 1; i++) {
     int x = 0;
     int y = 0;
     String ans = in.nextLine();
     int[] arraya = createaarray(ans);
     x = arraya[0];
     y = arraya[1];
     matrix[x][y] = true;
 }