两个多用户输入程序之间有什么区别?

时间:2016-11-28 10:11:46

标签: java

import java.util.Scanner;
public class HelloWorld{
    public static void main(String args[]){
    Scanner dd = new Scanner(System.in);
    System.out.println("Enter name");
    String b = dd.nextLine();
    System.out.println("Enter num");
    int num = dd.nextInt();
  }
}

import java.util.Scanner;
public class HelloWorld{
    public static void main(String args[]){
        Scanner dd = new Scanner(System.in);
        System.out.println("Enter num");
        int num = dd.nextInt();
        System.out.println("Enter name");
        String b = dd.nextLine();
    }
}

为什么后者不能正常工作(不让我输入名字),而第一个呢?

我已经编造了一个没有令人讨厌的“扫描仪扫描=新扫描仪”的新版本。 那个解决方案怎么样?它可能有什么缺点?

import java.util.Scanner;
public class HelloWorld{
public static void main(String args[]){
    System.out.println("Enter num");
    int i = new Scanner(System.in).nextInt();
    System.out.println("Enter name");
    String b = new Scanner(System.in).nextLine();
  }
}

2 个答案:

答案 0 :(得分:0)

在第二种情况下,nextInt()不会扫描用户在按Return键时输入的换行符。

在第一种情况下,首先遇到nextLine(),因此问题不会显现出来。

故事的寓意是总是使用nextLine()并相应地解析结果字符串。使用Integer#parseInt之类的东西将字符串转换为整数。

答案 1 :(得分:0)

第二个程序首先需要Int,然后是名称。因此,输入名称时可能会出错。