java - 运行时错误 - 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();
}
}
}
}
解决方案
不要使用nextInt()
,因为它不会清理缓冲区中的行。因此,用户输入的更好方法是使用s.nextLine()
. 接受整数输入
Integer.parseInt(s.nextLine())
当您使用nextInt()
它时,它需要输入,但输入之后的行仍然存在于缓冲区中,当另一个nextInt()
查找输入时,您会得到异常。
推荐阅读
- android - 与 IONIC 进行后台通信的低功耗蓝牙 (BLE)
- batch-file - 如何使用批处理脚本获取所有分区的总大小?
- adfs - 有没有办法在 ADFS 2019 中注册移动(Android / iOS)客户端?
- javascript - 如何使用本机反应实现雷达图?
- c# - 在vs代码中指定一个Nuget包源
- pandas - 来自 Pandas get_dummies 的重复列
- javascript - 如何等待 array.map 方法中的承诺解决?
- python - 不和谐文件中的不和谐无类型对象错误?
- android - 如何增加 Places SDK for Android 的配额?
- php - Nginx PHP-FPM 位置别名