Java 如何防止scanner对象读取超出其在循环中必须读取的任何数据

Java 如何防止scanner对象读取超出其在循环中必须读取的任何数据,java,arrays,java.util.scanner,Java,Arrays,Java.util.scanner,希望这样更好。我正在编写一个java赋值来实现排序技术。我在循环中使用scanner对象来输入要排序的用户数据。但是,在填充数组并显示索引越界错误后,scanner对象继续读取数据。我该如何处理这个问题 public static void set1(int N) { int i,c,e,f; double a,b; int[] arr1 = new int[N]; int[] arr2 = new int[N]; System.out.println("

希望这样更好。我正在编写一个java赋值来实现排序技术。我在循环中使用scanner对象来输入要排序的用户数据。但是,在填充数组并显示索引越界错误后,scanner对象继续读取数据。我该如何处理这个问题

public static void set1(int N)
{
    int i,c,e,f;
    double a,b;
    int[] arr1 = new int[N];
    int[] arr2 = new int[N];
    System.out.println("Please enter numbers to be sorted");

    for(i=0;i<=N;i++)
    {
        Scanner Secondin = new Scanner(System.in);
        arr1[i] =  Secondin.nextInt();
    }
}

从0到并包括N太多。新的int[5]具有插槽0、1、2、3和4。一共5个插槽。arr1[5]是ArrayIndexOutOfBoundsException,因为这是第6个插槽。尝试int i=0;i
if (i == N) {
break;
}

一旦达到极限=N,这将打破for循环。

更改i如果您做错了。如果希望数组的大小为N,并且从索引0开始读取,则需要在N-1之前一直只读。一旦索引达到N的大小,就需要退出循环。尝试以下方法:fori=0;我