了解Java扫描仪怪异[重复]

问题描述 投票:0回答:1

我正在为学校编写代码,在读取用户输入时遇到问题。我创建了一个新的类进行测试,以查看它是否是我周围的代码,不是。这是简化的代码。

    import java.util.*;
public class practice {
    public static void main(String[] args){
      Scanner kb = new Scanner(System.in) ;
      String fullname = kb.nextLine();
      int age = kb.nextInt();
      String program = kb.nextLine();
    * int number = kb.nextInt();
      System.out.println(fullname);
      System.out.println(age);
      System.out.println(program);
      System.out.println(number);
    }
}

出现以下错误

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 practice.main(practice.java:8)

我已标记发生错误的位置。为什么会发生这种情况,我该如何解决?

到目前为止,我已经尝试过:-在第一个kb.nextLine()之后添加了kb.nextLine()-尝试在每次输入后重置扫描仪]

java input java.util.scanner
1个回答
0
投票
  Scanner kb = new Scanner(System.in) ;
  String fullname = kb.nextLine();
  int age = kb.nextInt();
  kb.nextLine();
  String program = kb.nextLine();
  int number = kb.nextInt();

  kb.nextLine();
  System.out.println(fullname);
  System.out.println(age);
  System.out.println(program);
  System.out.println(number);

参考:InputMismatchException when using Sacnner nextLine for String

以下代码可以正常工作(我已经测试过)

© www.soinside.com 2019 - 2024. All rights reserved.