java java.util.scanner

java - El escáner no ve después del espacio



java.util.scanner (6)

Estoy escribiendo un programa que pregunta por el nombre completo de la persona y luego toma esa información y la revierte (es decir, John Doe - Doe, John). Empecé tratando de obtener solo la entrada, pero solo obtengo el primer nombre.

Aquí está mi código:

public static void processName(Scanner scanner) { System.out.print("Please enter your full name: "); String name = scanner.next(); System.out.print(name); }


Cambiar a String name = scanner.nextLine(); en lugar de String name = scanner.next();

Ver más en la documentación aquí - next() y nextLine()


De la documentación del Scanner :

Un Scanner divide su entrada en tokens usando un patrón de delimitador, que por defecto coincide con el espacio en blanco.

y

public String next()

Encuentra y devuelve el siguiente token completo de este escáner. Un token completo va precedido y seguido de una entrada que coincide con el patrón del delimitador.

Esto significa que por defecto el patrón del delimitador es "espacio en blanco". Esto divide tu texto en el espacio. Use nextLine() para obtener toda la línea.


Intenta reemplazar tu código

String name = scanner.nextLine();

en lugar

String name = scanner.next();

next() puede leer la entrada solo hasta el space . No puede leer dos palabras separadas por space . Además, next() coloca el cursor en la misma línea después de leer la entrada.

nextLine() lee la entrada, incluido el space entre las palabras (es decir, lee hasta el final de la línea /n ). Una vez que se lee la entrada, nextLine() posiciona el cursor en la siguiente línea.


intenta usar esto

String name = scanner.nextLine();


scanner.next(); toma solo la siguiente palabra. scanner.nextLine(); Deberia trabajar. Espero que esto ayude


public static void processName(Scanner scanner) { System.out.print("Please enter your full name: "); scanner.nextLine(); String name = scanner.nextLine(); System.out.print(name); }

Pruebe el código anterior El escáner debería poder leer el espacio y pasar a la siguiente referencia de la cadena