Klassen Nane Vorname

fahad

Mitglied
Hallo,
Kann jemand vieleicht mir helfen, Die frage leutet:
Eine Person hat einen Vornamen und einen Nachnamen. Eine einfache Person
wird textuell dargestellt als "<vorname> (hier steht ein space)<nachname>"
ich hab es so geschrieben, aber bin ich nicht sicher
[JAVA=42]public class Urheber {
String person = " ";
String vorname = person.substring(person.indexOf(" "), 0);
String nachname = person.substring(0, person.lastIndexOf(""));[/code]
 

njans

Top Contributor
Java:
String person = "hans_peter";
String[] namen = person.split("_");
String vorname = namen[0];
String nachname = namen[1];

Das sollte besser sein.
 

DrZoidberg

Top Contributor
Sollst du eine Klasse für Personen erstellen?

Das sollte dann ungefähr so aussehen
Java:
public class Person {
    private String vorname;
    private String nachname;
    public Person(String vorname, String nachname) {
        this.vorname = vorname;
        this.nachname = nachname;
    }
    public String toString() {
        return vorname + " " + nachname;
    }
}
 

fahad

Mitglied
Ich danke Ihnen für Ihre Hilfe, ich hab noch einen Problem, ich wollte eine neue klasse Band erstelen, die frage leutet;
(Band). Eine Band hat einen Bandnamen und hat mehrere Mitglieder. Nur
Personen können Mitglieder von Bands sein. Eine Band wird textuell dargestellt als
"bandname_(<member1>,_<member2>,_...)". Wobei <memberX> für die textuelle Darstellung
des Mitglieds steht.
Ein Beispiel dafür, Die Band U2 würde dargestellt als "U2 (Paul David "Bono" Hewson, David
Howell "The Edge" Evans, Larry Mullen, Adam Clayton)".
In diesem Fall "Bono" ist ein künstlername, dafür habe ich eine Klasse so hergestellt
[JAVA=42]public class Kuenstler extends Person{
String kuenstler = "Paul_"Bono"_Hewson";
String[] name = kuenstler.split("_""_");
String vorname = name[0];
String kuenstlername = name[1];
String nachname = name[2];[/code]

hier kriege ich aber fehler bei "Bono" und kuenstler.split("_""_")
[JAVA=42]String kuenstler = "Paul_"Bono"_Hewson";
String[] name = kuenstler.split("_""_");[/code]
können Sie vieleicht sagen, wie die richtige schreibweise ist und wie ich bei "Band" weiter gehen kann.
 

Landei

Top Contributor
Wenn du " innerhalb eines Strings (als normales Zeichen) haben willst, musst du es mit dem Backslash "escapen":

[c]"Paul_\"Bono\"_Hewson"[/c]

Ist auch logisch: Woher soll der Compiler sonst wissen, welches Anführungszeichen "dazugehört" und welches das Ende des Strings kennzeichnet...

Andere spezielle Zeichen: Backslash: [c]"\\"[/c], Tabulator: [c]"\t"[/c], neue Zeile: [c]"\n"[/c], Wagenrücklauf:[c]"\r"[/c]

Je nach Betriebssystem ist ein "normales" Zeilenende übrigens [c]"\n"[/c] (Unix, Linux), [c]"\r\n"[/c] (Windows) oder [c]"\r"[/c] (Mac)
 
Zuletzt bearbeitet:
F

Firephoenix

Gast
Das Problem sieht du eigentlich sofort am highlighting:
Java:
    String kuenstler = "Paul_"Bono"_Hewson";

Das Zeichen " ist in Java reserviert, um es in einem String zu verwenden muss es mit \ annotiert werden.

Java:
    String kuenstler = "Paul_\"Bono\"_Hewson";
[EDIT]@Landei du musst genau in dem Moment geantwortet haben als ich auf antworten geklickt habe :) hatte keine Warnung für vorige Posts bekommen...[/EDIT]
Gruß
 
B

bone2

Gast
Deshalb ist Syntax-Highlightingso nützlich. Wie du siehst ist Bono schwarz statt blau. Das ist kein Teil des Strings.
 

DrZoidberg

Top Contributor
Ich würde das anders rum schreiben
Java:
public class Kuenstler extends Person{
    String vorname = "Paul";
    String kuenstlername = "Bono";
    String nachname = "Hewson";
    String kuenstler = vorname + " \"" + kuenstlername + "\" " + nachname;
 

Oben