El uso de hasNextLine en Java, no leerá NextLine después de NextInt
Pregunta
Estoy tratando de hacer que esto funcione
System.out.println("Please enter what SOCKET NUMBER you" +
"wish to connect to");
int sockname = Integer.parseInt(inFromUser.nextLine());
System.out.println("Please enter what HOSTNAME you" +
"wish to connect to");
String hostname = inFromUser.nextLine();
El problema es que no puedo hacer que el nombre de host sea igual a la entrada del usuario. Pensé que tenía que ver con hasNext o una variante de eso, pero no estoy seguro. ¿Alguna idea?
Solución
Puede haber " \ n " en el búfer de entrada después de nextLine (), por lo que la siguiente llamada solo lo lee y regresa. Debe borrar el búfer después de leer int
inFromUser.skip("\\n+");
Otros consejos
java.io.BufferedReader tiene un método readLine (). Usa eso. Si está utilizando Scanner.nextLine (), debe saber que si su posición es justo antes de una nueva línea, obtendrá una cadena vacía. Sin embargo, la siguiente nextLine devolvería una línea de texto completa (lo mismo que readLine).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow