java使用扫描仪在一行上读取多个数字
我需要使用扫描仪从一行中读取多个数字(不知道要读取多少个数字,但我知道它们最多是六个数字)。我尝试了在网上找到的东西,但找不到解决办法。当用户写入-1时,读取停止。以下是我到目前为止写的内容:
Scanner read = new Scanner(System.in);
int i;
float buffer[] = new float[6];
while (read.nextInt() != -1) {
if (read.hasNextInt()) {
buffer[i] = read.nextInt();
i++;
} else {
break;
}
}
当我尝试运行这个时,我得到一个NoSuchElementException
,但我不明白为什么。这个代码怎么了?我怎样才能纠正这个问题?提前谢谢
# 1 楼答案
或者您可以读取一次行,并将其拆分为整数
# 2 楼答案
因为您没有检查
Scanner
是否有另一个int
(当它没有其他元素时,Scanner
不会返回-1
)。这个应该是这样的