Java Scanner sc.nextLine()的问题;

Jon*_*n B 5 java java.util.scanner

sry about my english :)
我是Java编程的新手,我遇到了Scanner的问题.我需要读取一个Int,显示一些东西,然后读取一个字符串,所以我使用sc.nextInt(); 显示我的东西showMenu(); 然后尝试读取字符串palabra = sc.nextLine();

有人告诉我,我需要使用sc.nextLine(); 在sc.nextInt()之后; 但我不明白为什么你要这样做:(

这是我的代码:

public static void main(String[] args) {
    // TODO code application logic here
    Scanner sc = new Scanner(System.in);
    int respuesta = 1;

    showMenu();
    respuesta = sc.nextInt();
    sc.nextLine(); //Why is this line necessary for second scan to work?

    switch (respuesta){
        case 1:
            System.out.println("=== Palindromo ===");
            String palabra = sc.nextLine();
            if (esPalindromo(palabra) == true)
                System.out.println("Es Palindromo");
            else
                System.out.println("No es Palindromo");
        break;
    }


}
Run Code Online (Sandbox Code Playgroud)

非常适合你的时间和帮助:D

Ben*_*n S 7

nextInt() 只有在找到int然后停止之后才会读入.

您必须这样做,nextLine()因为输入流仍然具有换行符,并且可能还有其他非int数据.调用nextLine()读取剩下的任何数据,包括在输入int和输入String之间输入用户.