Domanda

Sto cercando di farlo funzionare

 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();

Il problema è che non riesco a ottenere il nome host uguale a qualsiasi input dell'utente. Ho pensato che avesse a che fare con hasNext o una sua variante, ma non ne sono sicuro. Qualche pensiero?

È stato utile?

Soluzione

Potrebbe esserci " \ n " nel buffer di input dopo nextLine (), quindi la chiamata successiva lo legge e restituisce. Devi cancellare il buffer dopo aver letto int

inFromUser.skip("\\n+");

Altri suggerimenti

java.io.BufferedReader ha un metodo readLine (). Usa quello. Se stai usando Scanner.nextLine (), allora dovresti sapere che se la tua posizione è appena prima di una nuova riga, otterrai una stringa vuota. Tuttavia, il prossimo nextLine restituirà effettivamente un'intera riga di testo (lo stesso di readLine).

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