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

时间:2016-03-14 12:53:12

标签: java alphanumeric

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);
    }
}

但是当我给出一个字母数字值时,我会收到错误..

ex:Manish0818

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

帮助

1 个答案:

答案 0 :(得分:2)

更改您的输入声明。

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

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

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

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