Frage von Papierwurst, 37

Java .lenght if else Problem?

Hallo ich möchte ein Programm haben welches wenn ich nur den Vornamen schreibe sagt Hallo (Vorname) und wenn ich den vor und nachnamen schreibe das er dann ausgibt Hallo Herr Müller als beispiel script: (Ich weiß das ich ab dem .lenght irgendwas machen muss aber ich weiß nicht was)

import java.util.Scanner; import java.io.IOException;

public class Aufgabe4 {

public static void main(String[] args) {
    String anrede, firstname, lastname, sentence_beginn, sentence_end, sentence_full;
    
    Scanner scanner = new Scanner(System.in);
    
    System.out.println("Wie ist dein Name?");
    firstname = scanner.next();
    String[] namen = firstname.split(" ");
    namen.length = 
            
                
            
            
            
            
            
            
            
            
            
    System.out.println("Herr oder Frau?");
    anrede = scanner.next();
    System.out.println("Wie ist dein Vorname?");
    firstname = scanner.next();
    System.out.println("Wie ist dein Nachname?");
    lastname = scanner.next();
    sentence_beginn = "Hallo ";
    sentence_end = ". Herzlich Willkommen.";
    sentence_full = sentence_beginn + anrede + lastname + sentence_end;
    System.out.println("sentence_beginn+name+sentence_end= "+sentence_full);
}

}

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Minenfeld4, 37

Scanner scan = new (Scanner.System.in);

firstname = scanner.next();
String[] namen = firstname.split(" ");

System.out.println("Hallo Herr/Frau " + namen[1]);

UNGETESTET

Kommentar von Minenfeld4 ,

Ich glaub ich hab die Frage nicht richtig gelesen...

so hast du aber keine Abfrage ob es Herr/Frau ist:

if(firstname.contains(" ")) {	String[] namen = firstname.split(" ");
System.out.println("Hallo Herr/Frau " +
namen[1]);} else { System.out.println("Hallo " + firstname);}
Kommentar von Papierwurst ,

Exception in thread "main" java.lang.Error: Unresolved compilation problem: Duplicate local variable namenat Aufgabe4.main(Aufgabe4.java:26)

Kommentar von Minenfeld4 ,

Die Fehlermeldung sagt doch aus was nicht stimmt?!

Kommentar von Papierwurst ,

ja i know hab zu spät irgendwie dran gedacht ich war gestern ein bisschen neben der spur

Antwort
von MrNaas, 20

Du hattest da etwas wirrwarr im Code, ich würds so machen:

public static void main(String[] args) {
 String anrede, firstname = null, lastname, sentence_beginn, sentence_end, sentence_full;
 Scanner scanner = new Scanner(System.in);
System.out.println("Herr oder Frau?");
anrede = scanner.nextLine().trim(); // nextLine() um leere Eingaben zuzulassen, trim um Leerzeichen etc. aus der Eingabe zu entfernen
while (firstname == null || firstname.length() == 0) { // while Schleife solange kein Name eingegeben wurde um den User zu zwingen eine Eingabe zu machen

System.out.println("Wie ist dein Vorname?");
  firstname = scanner.nextLine().trim();
 }
 
System.out.println("Wie ist dein Nachname?");
lastname = scanner.nextLine().trim();
sentence_beginn = "Hallo ";
sentence_end = ". Herzlich Willkommen.";
anrede = (anrede.length() > 0 && lastname.length() > 0) ? anrede : ""; // Anrede nur verwenden, wenn eine Anrede und ein Nachname eingegeben wurde ansonsten leerer String ("")
lastname = lastname.length() > 0 ? lastname : "";// Nachnamen nur verwenden wenn ein Nachname eingegeben wurde
sentence_full = sentence_beginn + anrede + firstname + lastname + sentence_end;
 System.out.println(sentence_full);
}

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten