我的CS教授建议使用nextLine()方法并解析出整数,而不是使用nextInt()方法。我只是想知道为什么使用nextLine()而不是nextInt()。
例如:
Scanner in = new Scanner(System.in);
System.out.println("Enter an integer: ");
String input = in.nextLine();
int num = Integer.parseInt(input);
代替:
Scanner in = new Scanner(System.in);
System.out.println("Enter an integer: ");
int input = in.nextInt();
最佳答案
调用nextInt()方法时,输入流的当前位置跳到下一个输入的String。在按Enter键之后,您将手动跳至下一行。
但是,当调用nextLine()方法时,输入流立即跳到下一行。
将nextInt()方法放入循环中可能会使函数在能够键入之前先读取一些内容,而这是您不希望的。
Scanner sc = new Scanner(System.in);
int x;
do{
try{
x = sc.nextInt();
break;
}
catch(InputMismatchException e){
System.out.print("Enter an Integer");
}
}while(true);
永远运行循环
Scanner sc = new Scanner(System.in);
int x;
do{
try{
x = Integer.parseInt(sc.nextLine());
break;
}
catch(NumberFormatException e){
System.out.print("Enter an Integer");
}
}while(true);
才不是
关于java - 解析时使用nextInt()和nextLine()之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58104424/