如何在Java中使用Scanner进行输入?

时间:2019-02-25 05:33:09

标签: java

我正在通过编写以下代码使用java扫描仪进行输入:

import java.util.Scanner;
class main{
    public static void main(String args[]){
        Scanner scan=new Scanner(System.in);
        System.out.println("Enter number");
        int i=scan.nextInt();
    }
}

但上面的代码抛出以下异常:

Enter number
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at main.main(main.java:7)
Tool completed with exit code 1

3 个答案:

答案 0 :(得分:1)

import java.util.Scanner; 
class Input { 

public static void main(String[] args) {        

Scanner input = new Scanner(System.in);                System.out.print("Enter an integer: ");  
int number = input.nextInt();   
System.out.println("You entered " + number);
 }
}

尝试此代码.....

在此创建Scanner类的输入对象。然后,使用Scanner类的nextInt()方法从用户那里获取整数输入。

要从用户处获取long,float,double和String输入,可以分别使用nextLong(),nextFloat(),nextDouble()和next()方法。

答案 1 :(得分:0)

您快到了。请注意,您需要 int 值,如果用户输入例如字符串,那么您会得到一个异常。

public static int askIntNumber(Scanner scan) {
    while(true) {
        try {
            System.out.print("Enter number: ");
            return scan.nextInt();
        } catch (Exception e) {
            System.err.println("This is not an integer number");
        }
}

答案 2 :(得分:0)

您应该尝试以下操作:

import java.util.Scanner;
public class main {
    public static void main(String[]args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("Enter number: ");
        int i=sc.nextInt();
    }
}

代码块sc.nextInt扫描整个输入,然后将其投入使用。这应该可以解决您的问题。