Java 扫描仪的问题:InputMismatchException

Vit*_*rda 1 java java.util.scanner inputmismatchexception

我有这个代码:

import java.util.Scanner;

public class Maggiore3Valori {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("System.in");

        int num1, num2, num3;
        int max;

        System.out.println("Inserisci il primo numero: ");
        num1 = scanner.nextInt();

        System.out.println("Inserisci il secondo numero: ");
        num2 = scanner.nextInt();

        System.out.println("Inserisci il terzo numero: ");
        num3 = scanner.nextInt();

        if (num1 > num2 && num1 > num3) {
            max = num1;
        } else if (num2 > num1 && num2 > num3) {
            max = num2;
        } else {
            max = num3;
        }

        System.out.println("Il maggiora trai tre è: " + max);
        scanner.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,在我输入第一个数字之前,控制台给了我这个错误:

Inserisci il primo numero:
Exception in thread "main" java.util.InputMismatchException
    at java.base/java.util.Scanner.throwFor(Scanner.java:939)
    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 Maggiore3Valori.main(Maggiore3Valori.java:13)
Run Code Online (Sandbox Code Playgroud)

我读到问题出在变量的类型上;但他们应该是对的。这个错误是什么意思?我该如何解决?

And*_*ner 5

Scanner scanner = new Scanner ("System.in");
Run Code Online (Sandbox Code Playgroud)

这将创建一个扫描程序,它读取当前目录中名为System.in.

这可能不是你的意思。要从标准输入中读取,请删除引号:

Scanner scanner = new Scanner (System.in);
Run Code Online (Sandbox Code Playgroud)