数据输入问题,结果不正确?

时间:2019-05-16 12:37:28

标签: java java.util.scanner

查看代码。 当我启动程序时,它不允许我将扫描仪类的输入插入到交换机中,为什么呢?

Scanner in = new Scanner(System.in);

System.out.println("select:");
int select = in.nextInt();

switch (select) {
case 1:
System.out.println("first name:");
String n = in.nextLine();
System.out.println("surname:");
String s = in.nextLine();

System.out.println(n + s);
break;
}

输出:

选择: 1个 名字: 姓:

2 个答案:

答案 0 :(得分:1)

nextLine方法将被忽略,因为nextInt方法中还剩下一个换行符。有两种方法可以解决此问题。

解决方案1:

Scanner in = new Scanner(System.in);
System.out.println("select:");
int select = in.nextInt();

in.nextLine();

解决方案2:

Scanner in = new Scanner(System.in);
System.out.println("select:");
int select = Integer.parseInt(in.nextLine());

答案 1 :(得分:0)

ScannerBufferedReader代替InputStreamReader可以解决此问题,请尝试:

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

System.out.println("select:");
int select = Integer.parseInt(input.readLine());

switch (select) {
    case 1:
        System.out.println("first name:");
        String n = Integer.parseInt(input.readLine());
        System.out.println("surname:");
        String s = Integer.parseInt(input.readLine());

        System.out.println(n + s);
    break;
}