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?

¿Fue útil?

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
scroll top