Was genau bedeutet dann das?
Was soll ich unter "die auszugebende Zeichenkette" und "die eingegebene Zeichenkette" verstehen?
Wenn ich z.B. erwarte, dass das Programm zeigt: "geben Sie einen Mädchenname ein", der Benutzer aber einen Jungenname eingibt, wie sieht dann diese Methode aus bzw. was gibt dann diese Methode zurück?
Habe ich es richtig verstanden:
"die auszugebende Zeichenkette" heißt in meinem Beispiel "geben Sie einen Mädchenname ein"
und
"die eingegebene Zeichenkette" der Jungenname, den der Benutzer eingegeben hat?
Wollte noch was fragen bezüglich des Anwendens dieser Methode.
Wenn diese Methode beispielsweise in der Terminal Klasse ist, und ich in einer anderen Klasse askString verwenden möchte, wie gehe ich dann vor? Also bleiben wir mal bei meinem alten Beispiel:
ich will dass der Benutzer einen Mädchenname eingibt, wenn einen Jungenname eingegeben wird, dann soll rauskommen "neuer Versuch".
Java:
publicclassTestName{String eingabe ="Geben Sie einen Mädchenname ein";publicStringgetName(String eingabe){this.eingabe = eingabe;returnTerminal.askString(eingabe);}}
Wo kommt nun der Jungenname und "neuer Versuch" hin?
Habe echt keine Idee wie ich es implementieren soll...stehe total aufm Schlauch...
Ich ebenfalls weil ich so recht das Problem nicht verstehe.
Im Prinzip kann das in einer Endlosschleife tuckern:
Java:
while(true){String strName =Terminal.askString("Bitte geben Sie einen Mädchennamen ein:");if(isGirlName(strName))break;System.out.println("Kein Mädchenname, neuer Versuch");}
Oder wenn Du beim ersten Mal den Prompt so und danach anders haben möchtest:
Java:
String strPrompt ="Bitte geben Sie einen Mädchennamen ein:")while(true){String strName =Terminal.askString(strPrompt);if(isGirlName(strName))break;
strPrompt ="Neuer Versuch. Bitte geben Sie einen Mädchennamen ein:";}
Das ist ein viel komplexeres Thema als Deine Einstiegsfrage. Das läuft ja schon auf ein kleines validierendes Framework raus.
Das Problem ist, dass Du (und da kann eigentlich keiner helfen) festlegen muss, wer (im Sinne welche Klasse) die Validierung machen soll, und wo (ggf woander) die Regeln für die Gültigkeit definiert werden. In Deinem Fall ist ja schon für einen menschen nur schwer feststellbar, ob ein Name männlich oder weiblich ist...
Das ist ein viel komplexeres Thema als Deine Einstiegsfrage. Das In Deinem Fall ist ja schon für einen menschen nur schwer feststellbar, ob ein Name männlich oder weiblich ist...
Ich ebenfalls weil ich so recht das Problem nicht verstehe.
Im Prinzip kann das in einer Endlosschleife tuckern:
Java:
while(true){String strName =Terminal.askString("Bitte geben Sie einen Mädchennamen ein:");if(isGirlName(strName))break;System.out.println("Kein Mädchenname, neuer Versuch");}
Oder wenn Du beim ersten Mal den Prompt so und danach anders haben möchtest:
Java:
String strPrompt ="Bitte geben Sie einen Mädchennamen ein:")while(true){String strName =Terminal.askString(strPrompt);if(isGirlName(strName))break;
strPrompt ="Neuer Versuch. Bitte geben Sie einen Mädchennamen ein:";}
Das Problem ist, dass die Anforderung inkonsistent ist: Welchen Sinn hat ein fexibler Prompt-Text, wenn die Validitätsprüfung dann doch direkt in der Methode ohne Einfußnahme des Aufrufers läuft? Die Methode kann ausschließlich Mädchennamen entgegennehmen, egal, was der Prompt-Text sagt...
Das Problem ist, dass die Anforderung inkonsistent ist: Welchen Sinn hat ein fexibler Prompt-Text, wenn die Validitätsprüfung dann doch direkt in der Methode ohne Einfußnahme des Aufrufers läuft? Die Methode kann ausschließlich Mädchennamen entgegennehmen, egal, was der Prompt-Text sagt...
Nein, leider verlangt die Aufgabe noch viel mehr:noe:
Jetzt habe ich die Eingabemöglichkeit auf drei beschränkt:
Java:
/**
*
* @param eingabe der Name, den der Benutzer eingibt.
*/publicvoidStart(String eingabe){this.eingabe = eingabe;
prompt ="Geben Sie einen Name ein (Anna|Becca)";
eingabe =MyTerminal.askString(prompt);if(MyTerminal.askString(prompt)=="Anna"){
prompt ="go to Anna";}elseif(MyTerminal.askString(prompt)=="search"){
prompt ="go to Becca";}else{System.out.println("Neuer Versuch");Start(eingabe);}}
/**
* TT: Der String eingabe kann nicht auf diesem Weg aus der Methode kommen.
* @param eingabe der Name, den der Benutzer eingibt.
*/// TT: Methoden beginnen IMMER mit Kleinbuchstaben!// TT: dieser Methodenname und sein Parameter beschreiben in keiner Weise, wass die Methode tutpublicvoidStart(String eingabe){this.eingabe = eingabe;
prompt ="Geben Sie einen Name ein (Anna|Becca)";
eingabe =MyTerminal.askString(prompt);if(MyTerminal.askString(prompt)=="Anna"){
prompt ="go to Anna";}elseif(MyTerminal.askString(prompt)=="search"){
prompt ="go to Becca";}else{System.out.println("Neuer Versuch");Start(eingabe);}}