Methoden Bitte um Erklärung der askString-Methode

hahalalaha

Mitglied
Hallo,

ich kapier eine Methode in meiner Aufgabenstellung nicht, wie der Titel schon besagt, heißt die Methode askString.
Ich habe nachgeguckt:

askString

public static java.lang.String askString(java.lang.String prompt)

Gibt eine Zeichenkette aus und erwartet die Eingabe einer Zeichenkette.

Parameters:
prompt - die auszugebende Zeichenkette.
Returns:
die eingegebene Zeichenkette.

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?

Danke im vorraus.
 

hahalalaha

Mitglied
Das, was nach dem Start des Programms von diesem ausgegeben (auf die Console geschrieben) wird,

Dass was der Anwender anschließen eintippen soll.

bye
TT

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?

Gruß,
HaL.
 

hahalalaha

Mitglied

Danke:)

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:


Java:
public class Terminal {

    public static String askString(String prompt) {
        System.out.print(prompt);
        return readString();
    }

ich will dass der Benutzer einen Mädchenname eingibt, wenn einen Jungenname eingegeben wird, dann soll rauskommen "neuer Versuch".

Java:
public class TestName {
String eingabe = "Geben Sie einen Mädchenname ein";

public String getName(String eingabe) {
this.eingabe = eingabe;
return Terminal.askString(eingabe);
}
}
Wo kommt nun der Jungenname und "neuer Versuch" hin?
Habe echt keine Idee wie ich es implementieren soll...stehe total aufm Schlauch...

Gruß,
HaL.
 

Bernd Hohmann

Top Contributor
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:";
}

Bernd
 

Timothy Truckle

Top Contributor
Wo kommt nun der Jungenname und "neuer Versuch" hin?
Habe echt keine Idee wie ich es implementieren soll...stehe total aufm Schlauch...
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...

Also ein möglicher Ansatz könnte so aussehen:
Java:
interface InputValidator<T> {
 void  setValidInput(String input);
 <T> getValidInput();
 String getPromptMessage();
 String getErrorMessage();
 boolean isValid(String input);
}

class Terminal {
    public static String askString( InputValidator inputValidator) {
     boolean isInputOk=false;
     do {
        System.out.print(inputValidator.getPromptMessage());
        inputString = readString();
        isInputOk = inputValidator.isValid(String input);
        if(!isInputOk) {
          System.out.println(inputValidator.getErrorMessage());
         }
     } while(!isInputOk);
    }
[EDIT]Der Aufrufer kann jetzt in der
Code:
isValid
Methode alles machen, [JAPI]Pattern[/JAPI] prüfen, Werte in einer Datenbank nachschlagen, ganz egal...[/EDIT]
bye
TT
 
Zuletzt bearbeitet:

hahalalaha

Mitglied
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:";
}

Bernd

Danke, ich probiers gleich mal aus:idea:

Gruß,
HaL.
 

Timothy Truckle

Top Contributor
Gut, ich habe auch ein blödes Beispiel genommen:bae:
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...

Und leider darf ich nichtx in der Terminal Klasse umschreiben...
Hausaufgabe?

bye
TT
 

hahalalaha

Mitglied
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...

Da hast du Recht, ist aber auch nur ein Teil der Aufgabe.

Richtig:oops:

Gruß,
HaL.
 

hahalalaha

Mitglied
Lass mich raten: nach Jungsnamen soll auch gefragt werden? :lol:

bye
TT

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.
	 */
	public void Start(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";
		} else if (MyTerminal.askString(prompt) == "search") {
			prompt = "go to Becca";
		} else {
			System.out.println("Neuer Versuch");
			Start(eingabe);
		}
			
	}

Könnte es dann stimmen?

Gruß,

HaL.
 

Timothy Truckle

Top Contributor
Java:
	/**
 	 * 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 tut
	public void Start(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";
		} else if (MyTerminal.askString(prompt) == "search") {
			prompt = "go to Becca";
		} else {
			System.out.println("Neuer Versuch");
			Start(eingabe);
		}
	}
Könnte es dann stimmen?
Die rekursive Lösung ist erstmal ungewöhnlich, aber ok, solange der Benutzer es nicht darauf anlegt, einen OutOfMemoryError zu provozieren...

bye
TT
 

hahalalaha

Mitglied
Die rekursive Lösung ist erstmal ungewöhnlich, aber ok, solange der Benutzer es nicht darauf anlegt, einen OutOfMemoryError zu provozieren...

bye
TT

Ehrlich gesagt hab ich es unbewusst rekursiv programmiert:bahnhof:

Mit dieser Zeile
Java:
eingabe = MyTerminal.askString(prompt);
bin ich mir ein bisschen unsicher.
Ich habe´s getestet, wenn ich
Java:
	public static void main(String[] args) {
		String prompt = "eins";
		String eingabe = "zwei";
		eingabe = MyTerminal.askString(prompt);
		System.out.println(eingabe);
	}
laufen lasse, dann wird "eins" ausgegeben. Ich will aber, dass eingabe(zwei) mit "Anna" oder "Becca" vergleicht.???:L


Gruß,
HaL.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
J Bitte um Erklärung Java Basics - Anfänger-Themen 4
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
G Bitte um Erklärung Java Basics - Anfänger-Themen 9
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
R Erklärung bitte Java Basics - Anfänger-Themen 3
tobiasbeil Fehler array initialisierung. Nur erklärung bitte. Java Basics - Anfänger-Themen 2
D Eine Erklärung für eine 3D-Schleife bitte. :) Java Basics - Anfänger-Themen 4
ineedhelpinjava OOP Bitte wichtig Java Basics - Anfänger-Themen 6
G Bitte meinen Account löschen Java Basics - Anfänger-Themen 1
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
Vivien Bitte um Optimierungsvorschläge / Verbesserungsvorschläge / allgemeines Feedback Java Basics - Anfänger-Themen 8
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
P Bitte Hinweise zu folgendem "Klassenproblem" Java Basics - Anfänger-Themen 3
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
B MVC Struktur mit mehreren Szenen - wer schaut mal bitte drüber? Java Basics - Anfänger-Themen 2
T Bitte um Hilfe Java Basics - Anfänger-Themen 9
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
P Erste Schritte Bitte ein paar Erklärungen zu meinem Code Java Basics - Anfänger-Themen 6
J Bitte Hilfe Java Basics - Anfänger-Themen 4
V Memory Logik Problem/Denkblockade, bitte helft Java Basics - Anfänger-Themen 1
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
A GUI- Allgemeines Problem (Bitte helfen) Java Basics - Anfänger-Themen 15
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
F Bitte mal Zusammenhänge der Klassen erklären Java Basics - Anfänger-Themen 8
P <identifier> expected Fehler bitte um Hilfe Java Basics - Anfänger-Themen 5
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
O Rundungsfehler bitte erklären! Java Basics - Anfänger-Themen 4
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
S Variablen Hilfe bitte Java Basics - Anfänger-Themen 6
Z Erste Schritte Bitte helft mir dringend!! Java Basics - Anfänger-Themen 3
T Unit tests fehlerhaft bitte um hiiiiilfe :D Java Basics - Anfänger-Themen 1
J Ich bitte DRINGEND um Hilfe!!! Java Basics - Anfänger-Themen 16
Q Importieren meiner Boundary? Bitte Hilfe Java Basics - Anfänger-Themen 3
T Eine kurze frage vor der prüfung bitte. Java Basics - Anfänger-Themen 5
CyberFish initialisieren, obwohl es gemacht wurde! Bitte um Hilfe Java Basics - Anfänger-Themen 10
H Bitte um Hilfe von Profis. Java Basics - Anfänger-Themen 5
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
J Probleme bei kompilieren ... Bitte um Hilfe Java Basics - Anfänger-Themen 27
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Bitte Hilfe für Funktionalität eines Sudokus Java Basics - Anfänger-Themen 8
G Brauche bitte Hilfe, bei umgekehrter Ausgabe!! Java Basics - Anfänger-Themen 6
G Input/Output FilenameFilter aber bitte keine Unterordner Java Basics - Anfänger-Themen 5
J Vererbung Anfänger Programm bitte um Kritik&Anregungen Java Basics - Anfänger-Themen 21
N Bitte Java Basics - Anfänger-Themen 2
D ???:L Bitte einmal mit drüber nachdenken Java Basics - Anfänger-Themen 5
eLogic DownloadManager - Bitte helft mir Java Basics - Anfänger-Themen 7
U finde fehler nicht! bitte um hilfe Java Basics - Anfänger-Themen 8
M Problem: code too large - bitte um Hilfe Java Basics - Anfänger-Themen 12
U Bitte Helfen kleines Spiel Java Basics - Anfänger-Themen 9
B Java und Javac funktionieren nicht - bitte hilfe Java Basics - Anfänger-Themen 5
P Bitte helft mir Java Basics - Anfänger-Themen 3
3 Bitte um Hilfe bei Lösung einer Aufgabe Java Basics - Anfänger-Themen 16
M Aus CSV-Datei lesen und anzeigen (bitte schnell um Antwort) Java Basics - Anfänger-Themen 6
R Jave Problem... bitte um Hilfe!! Java Basics - Anfänger-Themen 6
S Java problem, bitte um hilfe! Java Basics - Anfänger-Themen 9
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
C Bitte kurzes Feedback - JavaVersionen Java Basics - Anfänger-Themen 6
M Bitte um Verbesserungsvorschläge Java Basics - Anfänger-Themen 14
N verständniss problem bitte um hilfe Java Basics - Anfänger-Themen 3
L Brauche bitte dringend Hilfe für Klausur Java Basics - Anfänger-Themen 8
B Monat und Jahr bitte um Hilfe Java Basics - Anfänger-Themen 8
J Datentypen Generics - Bitte helfen !! Java Basics - Anfänger-Themen 9
T Java Beispiel Bitte helft mir Java Basics - Anfänger-Themen 5
A Dringende Bitte um Erklärungen zum besseren Verständnis Java Basics - Anfänger-Themen 4
D Java Problem bitte um hilfe Java Basics - Anfänger-Themen 4
S Datei-KopierProgramm ? CODE BITTE VERBESSERN Java Basics - Anfänger-Themen 11
D code erklären bitte ! Java Basics - Anfänger-Themen 15
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
M Kann mir bitte jemand "java.util.ArrayList" erklären? Java Basics - Anfänger-Themen 5
M Bitte um Kontrolle meines Quelltextes Java Basics - Anfänger-Themen 10
J Leichte Java Anfängerfrage. Bitte schnelle Antwort. :) Java Basics - Anfänger-Themen 10
S BITTE UM HILFE: Unterschied Deklaration und Signatur einer Methode Java Basics - Anfänger-Themen 3
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12
T Problem mit Aufgabe..bitte um Hilfe Java Basics - Anfänger-Themen 8
K 50 errormeldungen- komme auch nach vielen Nachmittagen nicht weiter. bitte helfen Java Basics - Anfänger-Themen 39
D Ausgabe sauber formatieren *bitte nochmal reinschaun* Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben