2017-12-11 2 views
0

Wenn ich diesen Code ausführe, überspringe er die erste Zeile ("Input first name:") und frage nach dem Nachnamen. Wie behebe ich das?Warum überspringt das die erste Zeile?

public static void newProduct() { 
    System.out.println("Input first name: "); 
    String fname = scan.nextLine(); 
    System.out.println("Input last name: "); 
    String lname = scan.nextLine(); 
} 

Der Ausgang jedes Mal wenn ich laufen diese ist:

Input first name: <User cannot input as this line gets skipped> 
Input last name: <User can input> 

Vielen Dank im Voraus.

+2

Versuchen Haben Sie andere 'nextXXX' woanders vor dieser Zeile? Vielleicht in einer anderen Methode? – Maroun

+0

@MarounMaroun JA!, Danke. Du kannst es in den Kommentar einfügen. Prüfe es als Antwort, sobald die Abklingzeit beendet ist. – Supremo

+0

Dies passiert, weil 'nextInt' beispielsweise nicht das neue Zeilenzeichen (die Eingabetaste, die Sie drücken), sondern nur Ziffern verwendet. Dieses "übrig gebliebene" Zeichen wird dann in Ihrer nächsten 'nextLine' verbraucht. Die Lösung wäre, einen anderen Scanner zu verwenden oder vorher eine andere 'nextLine' hinzuzufügen. – Maroun

Antwort

-1

dieses

public class Readname { 


public static void main(String[] args) { 


      Scanner scan = new Scanner(System.in); 

      System.out.print("Give a First Name :"); 
      String text = scan.nextLine(); 
      System.out.print("Give a Last Name :"); 
      String text2 = scan.nextLine(); 
      System.out.println("Full Name: "+text+" "+text2);//to bond the last and first name 

} 

} 
+0

Ich behob das Problem, ich hatte eine andere Methode, die scan.nextInt() verwendet; ich musste nur scan.nextLine() hinzufügen; Danke für die Hilfe trotzdem – Supremo

Verwandte Themen