线程“主”中的异常java.util.NoSuchElementException和java.util.Scanner错误

时间:2019-09-04 15:04:17

标签: java java.util.scanner

我不断从编译器中收到错误,我无法弄清楚我在做什么错。

我已经尝试过How to populate a constructor with user input in Java?的解决方案

但是我可能会错误地实现它,因为它似乎不起作用。

import java.util.ArrayList;    

import java.util.Scanner;    

public class primeNumbers {    

    private int numberCheck;    

    public primeNumbers(int numberCheck){    

        this.numberCheck = numberCheck;
        ArrayList<Integer> primeNumbersResult = new ArrayList<Integer>();    

        for (int i = 1; i <= numberCheck; i++) {
            if ((i % 2 != 0) && (i % 3 != 0) && (i % 5 != 0) && (i % 7 != 0)) {
                primeNumbersResult.add(i);
            } else if ((i == 1) || (i == 2) || (i == 3) || (i == 5) || (i == 7)) {
                primeNumbersResult.add(i);
            } 
            /* Continue to next i */
        }    

        System.out.println("Prime numbers up to " + numberCheck + " are: " + primeNumbersResult); 
        System.out.println("Amount of prime numbers up to " + numberCheck + " is: " + primeNumbersResult.size()); 
    }    

    public static void main(String[] args){    

        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter a number: ");
        int inputNumber = scanner.nextInt();
        inputNumber = scanner.nextInt();
        scanner.nextInt();    

        primeNumbers batch1 = new primeNumbers(inputNumber);
    }
}

请继续从编译器获取此输出和错误:

$javac primeNumbers.java    

$java -Xmx128M -Xms16M primeNumbers
Enter a number: 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 primeNumbers.main(primeNumbers.java:31)

2 个答案:

答案 0 :(得分:0)

您的代码还存在命名冲突,例如“类名起始字母必须大写”。在构造函数中初始化输入后,将质数业务逻辑包装在模块化方法中。

答案 1 :(得分:-1)

好的。我重写了没有方法或构造函数的整个内容。我找不到任何有关如何将用户输入与方法或构造函数结合的文档。另外,我写了这个简单的东西:

http://tpcg.io/C6x6RM

我的直接问题已经解决,但是结合方法和构造函数与用户输入的问题仍然存在。