Domanda

sry per il mio inglese :)
Im nuovo di programmazione Java e ho un problema con scanner. Ho bisogno di leggere un Int, mostrare alcune cose e poi leggere una stringa in modo che uso sc.nextInt (); visualizza la mia roba showMenu (); e poi provo a leggere una stringa palabra = sc.nextLine ();

Qualcuno mi ha detto che ho bisogno di usare una sc.nextLine (); dopo sc.nextInt (); ma io non capisco perché devi farlo: (

Qui è il mio codice:

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 così tanto per il vostro tempo e aiuto: D

È stato utile?

Soluzione

nextInt() legge solo finché non si è trovato l'int e poi si ferma.

Devi fare nextLine() perché il flusso di input ha ancora un carattere di nuova riga e, eventualmente, altri dati non int sulla linea. Chiamata nextLine() legge in qualsiasi dato che resta, compresa la immettere pressato tra l'inserimento di un int e inserendo una stringa l'utente.

Altri suggerimenti

Quando si inserisce un valore (se String, int, double, ecc ...) e premere 'invio,' un carattere di nuova linea (aka '\n') verrà aggiunto alla fine del vostro input. Quindi, se si sta entrando in un int, sc.nextInt() leggerà solo il numero immesso e lasciare il '\n' dietro nel buffer. Quindi, il modo per risolvere questo problema è quello di aggiungere un sc.nextLine() che leggerà le rimanenze e buttarlo via. Questo è il motivo per cui è necessario disporre che una riga di codice nel vostro programma.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top