2017-03-16 3 views
0

Ich versuche etwas für ein kleines persönliches Bankkonto-Projekt zu erreichen, mit dem ich übe. Ich möchte es so machen, dass, wenn ein Benutzer ein Leerzeichen eingibt, oder gar nichts eingibt (was bedeutet, dass Enter gedrückt wurde, ohne einen Wert einzugeben), dass der Standardname des Accounts zu "Default" wechselt.Wie akzeptiere ich einen leeren Wert für einen Scanner-Eingang

Wie so:

Scanner read = new Scanner(System.in); 
System.out.print("Enter your account's name: "); 
String input = read.next(); 
String name = ""; 

if (input == "" || input == null) { 
    name = "Default"; 
} else { 
    name = input; 
} 

Wahrscheinlich eine dumme Frage, aber das ist, wo ich auf leichte Probleme habe. Wenn ich ein Leerzeichen eingeben und dann die Eingabetaste drücken, wird der Name nicht weiter festgelegt. Wenn ich die Eingabetaste drücke, wenn eine Eingabe angefordert wird, wird der Name nicht weiter festgelegt. Gibt es eine Möglichkeit, es festzulegen?

Edit: Ich will nicht wissen, ob ein String über equals() einem anderen String entspricht oder nicht (danke, dass Sie das übrigens bemerkt haben). Der Scanner akzeptiert weiterhin keine leeren Eingaben.

+4

Verwenden Sie .equals(), um Zeichenfolgen zu vergleichen – Sweeper

+0

in Java, == wird für die Gleichheit der Anfangswertwerte oder Objektreferenzgleichheit verwendet. Wie Sweeper erwähnt, wird die Objektwertgleichheit durch .equals() –

+0

True festgestellt. Trotzdem kann ich immer noch kein leeres Zeichen eingeben und der Scanner muss es akzeptieren. : / – Jack

Antwort

0
Scanner sc=new Scanner(System.in); 
    System.out.print("Enter your account's name: "); 
    String input = sc.nextLine(); 
    String name = ""; 
    // System.out.println(input); 
    if (input.isEmpty()) { 
     name = "Default"; 
    } else { 
     name = input; 
    } 
System.out.println(name); 

Dies funktioniert f9 versuchen es.

Verwandte Themen