Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

    
            
  •             cuerdas de lectura de clase Java escáner                                      5 respuestas                          
  •     
    

Tengo el siguiente código:

        int nnames;
    String names[];

    System.out.print("How many names are you going to save: ");
    Scanner in = new Scanner(System.in);
    nnames = in.nextInt();
    names = new String[nnames];

    for (int i = 0; i < names.length; i++){
        System.out.print("Type a name: ");
        names[i] = in.next();
    }

    System.out.println(names[0]);

Al ejecutar este código, el escáner sólo va a recoger el primer nombre y no el apellido. Y que a veces se salta una línea cuando se trata de introducir un nombre, se mostrará como si hubiera dejado el nombre en blanco y pase al siguiente nombre. No sé lo que está causando esto.

Espero que alguien me puede ayudar!

EDIT: He tratado in.nextLine (); que fija los nombres completos, pero todavía mantiene una línea, aquí es un ejemplo de la salida:

How many names are you going to save:  3
Type a name: Type a name: John Doe
Type a name: John Lennon
¿Fue útil?

Solución

En lugar de:

in.next();

Uso:

in.nextLine();

nextLine() lee los caracteres hasta que encuentra un carácter de nueva línea '\n'

Otros consejos

escáner .Next detiene la lectura cuando se encuentra con un delimitador, que es un espacio en blanco. Utilice el método nextLine lugar.

Después de su nextInt inicial (), todavía hay una nueva línea vacía en su entrada. Por lo que sólo añadir un nextLine () después de su nextInt (), y luego entrar en el bucle:

...
Scanner in = new Scanner(System.in);
nnames = in.nextInt();
in.nextLine(); // gets rid of the newline after number-of-names
names = new String[nnames];

for (int i = 0; i < names.length; i++){
    System.out.print("Type a name: ");
    names[i] = in.nextLine();
}
...

Trate de usar:

System.out.println()

En lugar de:

System.out.print()
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top