Java:使用Integer.parseInt(sc.nextLine())和scan.nextInt()获取输入?

时间:2017-11-08 09:47:37

标签: java

我下面有一个java程序。起初,我试图获得输入n

int n = sc.nextInt();

但产量与预期不同。它在没有获取userName的情况下运行第一次迭代。更改为

int n = Integer.parseInt(sc.nextLine());

工作正常。有人可以解释一下,“int n = sc.nextInt();”

有什么问题
public class StringUserNameChecker {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());   //number of username u want to enter
        while (n-- != 0) {
            String userName = sc.nextLine();
            System.out.println("Your UserName is " + userName);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

sc.nextLine()之后使用sc.nextInt()时,它将在整数输入后读取换行符。

因此,要正确运行代码,您必须在sc.nextLine()之后使用sc.nextInt(),如下所示:

int n = sc.nextInt();
sc.nextLine();
while(n-- > 0) {
String username = sc.nextLine();
}