这是怎么回事:Exception in thread "main" java.util.InputMismatchException,数据类型感觉也没有错。


import java.util.Scanner;
import java.lang.String;

public class NO16 {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int a = scan.nextInt();
        String x = scan.next();
        int b = scan.nextInt();
        int c = scan.nextInt();
        int d = scan.nextInt();
        String y = scan.next();
        int e = scan.nextInt();
        int f = scan.nextInt();
        int g = scan.nextInt();
        int h = scan.nextInt();
        int i = scan.nextInt();
        String z = scan.next();
        int j = scan.nextInt();
        String k = null;
        int mod = (a + b*2 + c*3 + d*4 + e*5 + f*6 + g*7 + h*8 + i*9) % 11;
        if (mod == j){
            System.out.println("Right");
        }
        else {
            if (mod == 10){
                k = "X";
                String str1 = String.valueOf(a);
                String str2 = String.valueOf(b);
                String str3 = String.valueOf(c);
                String str4 = String.valueOf(d);
                String str5 = String.valueOf(e);
                String str6 = String.valueOf(f);
                String str7 = String.valueOf(g);
                String str8 = String.valueOf(h);
                String str9 = String.valueOf(i);
                System.out.println(str1 + x + str2 + str3 + str4 + y + str5 + str6 + str7 + str8 + str9 + z + k);
            }

        }
    }
}

img

同一行连续输入多个时,需要用空格隔开。
输入类型不匹配就会出现截图中的报错。
每个输入之间都用空格隔开,输入如下:

0 - 6 7 0 - 8 2 1 6 2 - 4

代码没问题。应该是你输入的时候,数据类型搞错了,应该输入int类型的地方,你输入了字符串。
你可以在每行输入前加个提示,比如,在需要输入int类型的地方添加一句
System.out.println("请输入整数:");
在需要输入字符串的地方添加一句:
System.out.println("请输入字符串:");
这样逐个输入,就不会出错了,你这里的输入太多了,类型混杂,输入的时候容易出错。