Java输入不匹配异常错误。我该如何着手解决这个问题?

Java输入不匹配异常错误。我该如何着手解决这个问题?,java,methods,Java,Methods,只有当我输入10个或更多3和7的数字时,它才会出现。它来自下面的这个方法,我在没有这个方法的情况下测试了它。这是密码 Scanner input = new Scanner(System.in); System.out.print("Enter a positive integer..."); int num = input.nextInt(); // Outputs System.out.println("Number of digits in number

只有当我输入10个或更多3和7的数字时,它才会出现。它来自下面的这个方法,我在没有这个方法的情况下测试了它。这是密码

Scanner input = new Scanner(System.in);
    System.out.print("Enter a positive integer...");
    int num = input.nextInt();

    // Outputs
    System.out.println("Number of digits in number is " + numberDigits(num));
    System.out.println("Number begins with " + firstNum(num));
    System.out.println("Number ends with " + lastNum(num));
    System.out.println("Does number begin with 7? " + beginWith(num, 7));
    System.out.println("Does number begin with 3? " + beginWith(num, 3));
    System.out.println("Does number contain a 7? " + contains(num, 7));
    System.out.println("Does number contain a 3? " + contains(num, 3));
    System.out.println("Is the number divisible by 13? " + divTest(num, 13));
    System.out.println("Is the number divisible by 77? " + divTest(num, 77)); 
    System.out.println("How many times does 7 appear in the number? " + digitAppearances(num, 7));
    System.out.println("How many times does 3 appear in the number? " + digitAppearances(num, 3));

public static int digitAppearances(int num, int x) {

    // Check if num is 0
  if (num <= 0 ) {
    return 0;
  }

// Count number of times x appears
else if (num % 10 == x) {
    return 1 + digitAppearances(num / 10, x);
}
else {
    return digitAppearances(num / 10, x);
}
}
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入正整数…”);
int num=input.nextInt();
//输出
System.out.println(“数字中的位数为”+numberDigits(num));
System.out.println(“数字以“+firstNum(num)”开头);
System.out.println(“数字以“+lastNum(num)”结尾);
System.out.println(“数字是否以7开头?”+以(num,7)开头);
System.out.println(“数字是否以3开头?”+以(num,3)开头);
System.out.println(“数字是否包含7?”+包含(num,7));
System.out.println(“数字是否包含3?”+包含(num,3));
System.out.println(“这个数字可以被13整除吗?”+divTest(num,13));
System.out.println(“这个数字可以被77整除吗?”+divTest(num,77));
System.out.println(“7在数字中出现了多少次?”+数字外观(num,7));
System.out.println(“3在数字中出现了多少次?”+数字外观(num,3));
公共静态int数字外观(int num,int x){
//检查num是否为0

如果(num,
扫描器
正试图读取带有的
int

此方法的调用形式为
nextInt()
,其行为方式与调用
nextInt(基数)
完全相同,其中
radix
是此扫描仪的默认基数

  • nextInt(基数):
抛出:

InputMismatchException
-如果下一个标记与整数正则表达式不匹配或超出范围

如果输入的值大于
Integer.MAX_value
(约21亿,10位),则会得到
InputMismatchException

如果要输入最多19位数字,请使用
nextLong


如果您想输入任意数量的数字,只需调用
next
,获取字符串,并验证它是否只包含数字。在进一步处理之前,您需要将字符数字转换为数字类型。

该代码不能抛出
inputmaschException
一个
inputmaschException
是由<代码>扫描仪
,但我在这里没有看到。请发布实际引发该异常的代码。很抱歉,它现在就在那里。