我的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/

10-10 09:18