从 java.util.Scanner 读取字母数字用户输入时出现 InputMismatchException

InputMismatchException when reading alphanumeric user input from java.util.Scanner

import java.util.Scanner;

public class StrinExp {
    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);
        int i = 0;
        String a = null;
        System.out.println("Enter username");
        i=scanner.nextInt();
        a=a.valueOf(i);
        System.out.print(a);
    }
}

但是当我给出字母数字值时出现错误..

例如:Manish0818

即使我给出与字符串相同的值,仍然面临同样的问题。

帮助

更改您的输入语句。

String a = null;
System.out.println("Enter username");
a = scanner.next();
System.out.println(a);

如果有字母数字,则将其作为字符串而不是整数。 如果这样做,您将进入 InputMismatchException。 这意味着您尝试使用整数,但输入的是数据类型不同的字符串。

如果您希望删除除字母数字以外的所有垃圾字符,那么您可以尝试

a = a.replaceAll("[^a-zA-Z0-9]+", "");