首页 > 解决方案 > 运行时错误 - java.util.NoSuchElementException

问题描述

程序使用Scanner类输入二维数组,但输出显示:

Runtime error:
 NZEC
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Wocode.main(Main.java:9)

代码片段:

import java.lang.*;
    import java.util.*;
    import java.util.Scanner;

     class Wocode {
        public static void main(String args[]) {
            Scanner s=new Scanner(System.in);
                int m=s.nextInt();
                int n=s.nextInt();
                int A[][] = new int[m][n];
                for(int i=0;i<m;i++)
                {
                  for(int j=0;j<n;j++)
                    {
                     A[i][j]=s.nextInt();
                    }
                }     
    }
    }

标签: javaarraysjava.util.scanner

解决方案


不要使用nextInt(),因为它不会清理缓冲区中的行。因此,用户输入的更好方法是使用s.nextLine(). 接受整数输入

Integer.parseInt(s.nextLine())

当您使用nextInt()它时,它需要输入,但输入之后的行仍然存在于缓冲区中,当另一个nextInt()查找输入时,您会得到异常。


推荐阅读