문제

내 영어에 대해 sry :)
Java 프로그래밍을 처음 접했고 스캐너에 문제가 있습니다. 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;
    }


}

당신의 시간과 도움을 위해 너무 많은 Ty : D

도움이 되었습니까?

해결책

nextInt() int가 발견 될 때까지만 읽습니다.

너가해야되는 nextLine() 입력 스트림에는 여전히 Newline 문자와 라인의 다른 비 INT 데이터가 있기 때문입니다. 부름 nextLine() int를 입력하고 문자열을 입력하는 사이에 누르는 사용자 입력을 포함하여 남은 데이터를 읽습니다.

다른 팁

값을 입력 할 때 (여부 String, int, double, 등 ...) 및 'Enter', 새 라인 캐릭터 (일명 '\n')는 입력 끝에 추가됩니다. 따라서 int에 들어가면 sc.nextInt() 입력 된 정수 만 읽고 떠날 것입니다 '\n' 버퍼 뒤에. 그래서 이것을 고치는 방법은 sc.nextLine() 그것은 남은 음식을 읽고 버릴 것입니다. 그렇기 때문에 프로그램에 한 줄의 코드가 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top