gpt4 book ai didi

java - 带有数组的 Java.Util.Scanner 的 NoSuchElementException

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:16:32 25 4
gpt4 key购买 nike

我是 java 的新手,不知道为什么在运行下面的程序时会出现此错误

程序:这个程序基本上读取第一行输入的N个数,然后扫描每个数字并将其存储在数组arr中并显示它。

N 的范围是:0<N<10^6

输入的数字可以很长,所以我在程序中使用了长数组

import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;

public class Solution {

public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner sc = new Scanner(System.in);
long no = sc.nextLong();

if(no > 1000000 || no < 1)
System.exit(0);


long arr[] = new long [(int)no];


for(int i=0;i<(int)no;i++) {

arr[i] = sc.nextLong();
System.out.println(arr[(int)i]);

}
}
}

输入值:here你找到输入值

输出:

运行时错误

Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextLong(Scanner.java:2265)
at java.util.Scanner.nextLong(Scanner.java:2225)
at Solution.main(Solution.java:23)

其余的输出是 here

最佳答案

您重复调用 nextLong(),但没有测试是否有下一个 long:

  for(int i=0;i<(int)no;i++) {
arr[i] = sc.nextLong();
System.out.println(arr[(int)i]);
}

你需要做这样的事情:

   for(int i=0;i<(int)no && sc.hasNextLong();i++) {
arr[i] = sc.nextLong();
System.out.println(arr[(int)i]);
}

关于java - 带有数组的 Java.Util.Scanner 的 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34546034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com