java - 线程 "main"java.util.NoSuchElementException 中出现异常,无法从控制台获取输入整数

标签 java

我正在尝试从控制台获取输入,但不知道为什么它显示错误。

我正在尝试打印两个数字之间的素数之和。

我正在ManipalProlearn的在线学习平台上尝试这个。

import java.util.Scanner;

public class SumOfPrimeNumbers {
    /**
    * Main method
    * @param args 
    */

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n1=scan.nextInt();
        int n2=scan.nextInt();
        scan.close();
        if((n1<3 || n1>1000)&&(n1>n2))
        {
            System.out.print("INVALID_INPUT");
        }
        else{
            int sum=0;
            for(int i=n1;i<=n2;i++)
            {
                isprime(i);
                sum+=i;
            }
            System.out.print(sum);
        }
    }

    public static boolean isprime(int i){
        int j;
        for(j=2;j<=i/2;j++)
        {
            if(i%j==0)  return false;
        }
        return true;
    }
}

堆栈跟踪如下:

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.nextInt(Scanner.java:2160)
    at java.util.Scanner.nextInt(Scanner.java:2119)
    at SumOfPrimeNumbers.main(SumOfPrimeNumbers.java:9)

最佳答案

您需要监听扫描仪的声音,例如 https://www.geeksforgeeks.org/scanner-nextint-method-in-java-with-examples/

    Scanner scanner = new Scanner(s); 

    while (scanner.hasNext()) { 

        // if the next is a Int, 
        // print found and the Int 
        if (scanner.hasNextInt()) { 
            System.out.println("Found Int value :"
                               + scanner.nextInt()); 
        } 

        // if no Int is found, 
        // print "Not Found:" and the token 
        else { 
            System.out.println("Not found Int value :"
                               + scanner.next()); 
        } 
    } 

因此,在您的情况下,请使用存储这些数字的列表,而 while 条件将为 (list.size() < 2 && scanner.hasNext())

关于java - 线程 "main"java.util.NoSuchElementException 中出现异常,无法从控制台获取输入整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58265869/

相关文章:

java - 使用 HTML 5 和 servlet 的视频

java - 将 LinearLayout 的方向作为参数发送给方法 - java Android Studio

java - 使用 BasicDataSource 关闭非 Activity session

java - 使用joda time api计算两个日期之间的天数

java - 在带有空格的字符串上使用 GSON JsonParser

java - 发送 key 后如何验证单元格文本的长度?

java - 使用Java图形在其中绘制带线的圆

java - 重新调整数组大小(如扩展和图像)- Java

java - Play Framework 2.5 - 从 scala.html 文件反向路由到 .java 文件中的变量

java - 在同一应用程序中使用 Amazon map 和 Google map