Datentypen Text eingeben, der verglichen werden soll

R

robby04

Gast
Hallo zusammen,
ich danke vorab schon mal für die Hilfe.
Ich hab eine Anfängerfrage und hoffe, das mir hier geholfen werden kann. Ich hab kein Ähliches Thema gefunden und hoffe ihr könnt mir weiter helfen.
Ich will ein Programm schreiben, welches mich Wörter in einer bestimmten Reihenfolge abfrägt. Einfaches Bsp. habe ich in das bereits vorhandene Programm eingefügt:

Java:
import java.util.*;
public class AbfrageKontinente {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// Eine Instanz der Klasse Scanner deklarieren zur Eingabe von Zahlen
		Scanner sc = new Scanner (System.in).useLocale(Locale.ENGLISH);
		
		// Programmbeschreibung ausgeben
		System.out.println("Programm: Alle Länder der Kontinente nennen (grob von Nord nach Süd, von Links nach Rechts!)");
		// Variable deklarieren
		int opt;		
		
		// 1.1. Optionen auflisten
		System.out.println("Welche Länder von welchem Kontinent möchten Sie aufzählen?" );
		System.out.println("Optionen: 1. Nordamerika " );
		System.out.println("              2. Südamerika" );
		System.out.println("              3. Europa");
                // ...
		
                System.out.print("Tippen Sie jetzt die Zahl für ein entsprechenden Kontinent ein: ");
		opt = sc.nextInt();

		switch (opt) {

		case 1:
		System.out.println("Nennen Sie nun die Länder von Nordamerika nacheinander!");
		
               // Solange Schleife bis "Alaska" eingegeben worden ist, ansonsten Fehlermeldung

		// Solange Schleife bis "Kanada" eingegeben worden ist, ansonsten Fehlermeldung

		// Solange Schleife bis "Grönland" eingegeben worden ist, ansonsten Fehlermeldung

		// Solange Schleife bis "USA" eingegeben worden ist, ansonsten Fehlermeldung

		// Solange Schleife bis "..." eingegeben worden ist, ansonsten Fehlermeldung
		
		break;
		}	
		
		}

}
Ich hoffe Ihr versteht worauf ich hinaus will.
Vielen Dank für Eure Antwort noch mal.

Gruß Robby
 
Zuletzt bearbeitet von einem Moderator:

Laars

Neues Mitglied
Hallo,
Ich hab das so verstanden, dass du willst, dass der Benutzer nach der Frage die Antwort eingeben muss,
ist die richtig, wird eine Zweite Frage gestellt.

Du musst also nach der Antwort die nächste Zeile lesen und vergleichen.
Strings vergleichen tust du mit .equals.
Nehmen wir an
Code:
 String eingabe = sc.next();
....
if(eingabe.equals("deine Antwort") //Ist deine eingegebene Zeile = der antwort?
    System.out.println("Das ist richtig"); //Richtig! Hier weiter machen was passieren soll wenn Antwort Richtig
else                                         //antwort falsch
   System.out.println("Deine antwort ist falsch, versuche es erneut") //Fehlermeldung. Frage erneut stellen mit einer Methode realisierbar.

Ich glaube so in etwa müsste es klappen, sonst frag weiter, bin ein bisschen müde.
Gute Nacht :)
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Naja, du könntest einfach eine(mehrere) Liste(n) anlegen.
z.B.
Java:
private static final List<String> NORTH_AMERICA = Arrays.asList("Alaska", "Kanada", "Grönland", "USA");

in deinen case-Abschnitten rufst du jeweils eine Methode auf die dann einen String einliest und mit dem String am Index i in der entsprechenden Liste vergleicht ?!

Java:
		case 1:
			System.out.println("Nennen Sie nun die Länder von Nordamerika nacheinander!");
			interrogate(sc, NORTH_AMERICA);
			break;
		case 2:
			System.out.println("Nennen Sie nun die Länder von Südamerika nacheinander!");
			interrogate(sc, SORTH_AMERICA);
			break;
//usw.
die Methode [c]interrogate[/c] überlasse ich jetzt mal dir(Schleife über die Liste und vergleichen). Vllt. ist dir ja jetzt auch eine andere Idee gekommen wie man es noch lösen könnte
Vergleichen könntest du wie schon gesagt per equals oder equalsIgnoreCase...
 
R

robby04

Gast
Hallo Ihr beiden,
also erstmal danke für die beiden Antworten. Das mit der Liste habe ich irgendwie nicht hinbekommen, aber die andere Variante. Habe hierzu aber noch eine Frage zur Schleife, die funktioniert einfach nicht, wo liegt hier mein Fehler. Hier ein Ausschnitt:

Java:
do {

String eingabe1 = sc.next();
if(eingabe1.equals("Alaska")){System.out.println("Richtig");}
else{System.out.print("Deine Antwort ist falsch, versuche es erneut!");}

while (eingabe1.equals("Alaska")} // Hier stimmt was nicht an der do while Schleife, hier wird mir ein Fehler angezeigt.

Ich will, dass man das so lange eingeben muss bis die Antwort richtig ist.
Kann das sein, dass der das nicht schluckt, weil das Buchstaben und keine Zahlen sind?
Danke nochmals.

Gruß Robby
 
Zuletzt bearbeitet von einem Moderator:

Mizar

Aktives Mitglied
Auf die Variable
Code:
eingabe1
hast du nur innerhalb der do-while-Schleife zugriff. So könntest du das Problem lösen:
Java:
String eingabe1 = ""; // Die Variable bereits außerhalb der Schleife deklarieren.
do {
    eingabe1 = sc.next();
    if(eingabe1.equals("Alaska")) {
        System.out.println("Richtig");
    } else {
        System.out.print("Deine Antwort ist falsch, versuche es erneut!");
    }
}while(!eingabe1.equals("Alaska")); // Hier fehlte dir ein '!' schließlich soll die Schleife solange laufen bis die Antwort richtig ist.
Das mit der Liste habe ich irgendwie nicht hinbekommen, aber die andere Variante.
Was hat da denn nicht geklappt? Ich fände eRaaaas Vorschlag mit der Liste (den Listen) nämlich auch besser.
 
R

robby04

Gast
ok, ihr habt mich überzeugt mit den Listen. Dann werde ich mich hier noch mal probieren. Denn mit der anderen Variante wird mein Quellcode ziemlich lang und kostet viel Mühe.

Danke. Ich frag noch mal ... wenn ich stecke... Danke

Bin halt noch frisch in der Materie.

Gruß Robby
 
R

robby04

Gast
Hallo noch mal,

also sorry, das ich jetzt noch mal nerve. Aber ich habs jetzt die ganze Zeit probiert und ich bekomm es einfach nicht hin, das es mit den Listen im Prinzip so funktioniert wie hier.

Java:
import java.util.*;
public class AbfrageKontinente {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner (System.in).useLocale(Locale.ENGLISH);
		System.out.println("Programm: Alle Länder der Kontinente nennen (grob von Nord nach Süd, von Links nach Rechts!)");
		int opt;		
		System.out.println("Welche Länder von welchem Kontinent möchten Sie aufzählen?" );
		System.out.println("Optionen: 1. Nordamerika " );
		System.out.println("              2. Südamerika" );
		System.out.println("              3. Europa");
		System.out.println("              4. Afrika");
		System.out.println("              5. Asien");
		System.out.println("              6. Ozeanien");
		System.out.println("              7. Antarktis");
		

		System.out.print("Tippen Sie jetzt die Zahl für ein entsprechenden Kontinent ein: ");
		opt = sc.nextInt();

		switch (opt) {

		case 1:
                System.out.println("Nennen Sie nun die Länder von Nordamerika nacheinander!");
		
		//eingabe1: Alaska	
		String eingabe1 = "Alaska"; 
		do {eingabe1 = sc.next();
		if(eingabe1.equals("Alaska")) {
                System.out.println("Richtig");} 
		else {System.out.print("Deine Antwort ist falsch, versuche es erneut!");}}
		while(!eingabe1.equals("Alaska"));
		
//eingabe2: Kanada	
String eingabe2 = "Kanada"; 
do {eingabe2 = sc.next();
if(eingabe2.equals("Kanada")) {
System.out.println("Richtig");} 
else {System.out.print("Deine Antwort ist falsch, versuche es erneut!");}}
while(!eingabe2.equals("Kanada"));
		
		//......
		
		
		break;
		}
	}
}


Kann mir das jemand erklären oder besser mit dem Beispiel oben umsetzen.
Ich könnte mein Programm jetzt wie oben schreiben:
Problem ist aber, das wird ein ewig langens Programmm, wenn ich jedes einzelne Land für jeden einzelnen Kontinent eingebe. Jedes Land 7 Programmzeilen plus 7 (bzw.9 inkl. Kommentar) individuelle Änderungen mal ca. 210 Länder. Da ist mir die Gefahr für Fehler und der damit verbundene Aufwand einfach zu groß.
Wäre genial, wenn jedes Land nur einmal in eine Liste eingetragen wird und fertig. Der Rest insich Schleifen. Ich schaffe das einfach gerade nicht und verzweifle grad. Weiß wie ich es theoretisch umsetzen muss, aber praktisch gehts einfach für mich momentan nicht.

Es muss doch eine Methode geben eine Liste (wie oben bereits erwähnt, aber ich kanns nicht richtig umsetzen) von Wörtern nach einander abzufragen und bei einer Fehleingabe das Wort erneut eingeben zu lassen, solange bis es richtig ist.
Die Wörter haben dann eine Art Index, der einzelnd nachgefragt und eingegeben werden muss, wie gesagt, solange bis es stimmt.

Könntet ihr mir bitte weiterhelfen. Ich komm einfach nicht zu meinem Ergebnis. Das mitgesendete Programm läuft, aber es ist viel zu Aufwendig es vollständig umzusetzen.

Danke schon mal für Eure Hilfe.

Gruß Robby
 

eRaaaa

Top Contributor
Also ohne jetzt hier groß eine ganz andere Lösung zu posten, eine Mischung aus meinem Vorschlag und Mizar wäre dann wohl:
Java:
	private static void interrogate(Scanner sc, List<String> list) {
		String s = null;
		for (int i = 0; i < list.size(); i++) {
			do {
				System.out.println("Bitte gebe Land Nr.: " + (i+1) + " ein");
				s = sc.next();
			} while (!s.equalsIgnoreCase(list.get(i)));
			System.out.println("Richtig!");
		}
		System.out.println("Alle richtig, super !");
	}

??
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
A Text mit "Scanner" eingeben und Umlaute ersetzen Java Basics - Anfänger-Themen 7
S Text über Tastatur eingeben und ausgeben Java Basics - Anfänger-Themen 6
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
A Edit Text Negative Decimalzahlen Java Basics - Anfänger-Themen 18
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
R Text in der DB abspeichern, und danach bearbeiten Java Basics - Anfänger-Themen 5
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
A Text zu Morsecode Java Basics - Anfänger-Themen 8
O Java Text Area Zeilenausgabe Java Basics - Anfänger-Themen 7
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
T208 Text Datei individuell benennen. Java Basics - Anfänger-Themen 5
A Werten aus dem Text ausliesten Java Basics - Anfänger-Themen 6
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
xFlozen Text mehrspaltig ausgeben Java Basics - Anfänger-Themen 3
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
K Rekursiver Vergleich von Textmuster und Text Java Basics - Anfänger-Themen 2
C Variablen Provided text for message may not be null Java Basics - Anfänger-Themen 9
H Klassen Die Länge einer Text-Node bestimmen Java Basics - Anfänger-Themen 2
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
J Java TextArea Text bei hinzufügen makieren Java Basics - Anfänger-Themen 1
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Anklickbaren Text erzeugen Java Basics - Anfänger-Themen 2
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
M Java: BufferedReader liest nur die Hälfte der Text-Datei. Java Basics - Anfänger-Themen 4
M Apache POI PPT - Vertikales Alignment von Text im XSLFAutoShape Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
J java.text.DecimalFormat Java Basics - Anfänger-Themen 5
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
S Text-To-Speech mit Java Java Basics - Anfänger-Themen 2
L Text-Adventure Java Basics - Anfänger-Themen 3
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
tsom Erste Schritte itext Text als Block auf neue Seite Java Basics - Anfänger-Themen 0
Dimax Programme ,als Text in MySql speichern Java Basics - Anfänger-Themen 7
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
S Zeichen zählen kopierter Text Java Basics - Anfänger-Themen 6
D Text als Code in java-forum.com formatieren. Wie ? Java Basics - Anfänger-Themen 3
F Schreibprogramm nur markierten Text in kursiv oder fett schreiben Java Basics - Anfänger-Themen 3
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
M Erste Schritte Verschlüsselung von text Java Basics - Anfänger-Themen 21
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
K (JTable) Text einer Zelle auf der linken Seite kürzel Java Basics - Anfänger-Themen 2
H Suche in Text und Markierung Java Basics - Anfänger-Themen 14
H Suche in einem Text Java Basics - Anfänger-Themen 17
F Input/Output Text einlesen lassen Java Basics - Anfänger-Themen 14
R Best Practice Palindrom in einem Text finden Java Basics - Anfänger-Themen 18
J Text Datei einlesen Java Basics - Anfänger-Themen 6
L Text und Ganzzahl in einer Dialogbox Java Basics - Anfänger-Themen 5
D Text Adventure Erstellen Java Basics - Anfänger-Themen 10
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
J JTextArea visible ohne Text Java Basics - Anfänger-Themen 3
D Bild zu Text Java Basics - Anfänger-Themen 4
L Text/Befehle zu Programmen senden Java Basics - Anfänger-Themen 1
L Java Text datei nur bis zu einem Punkt auslesen? Java Basics - Anfänger-Themen 3
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
S Erste Schritte Sprachermittler - Datei öffnen, Text in TextArea, Bereinigen, Auswerten Java Basics - Anfänger-Themen 14
S Java Label hat komischen text Java Basics - Anfänger-Themen 4
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
S Ausgabe von Text Formatieren Java Basics - Anfänger-Themen 6
H Text in einen Button quetschen Java Basics - Anfänger-Themen 3
A Text teilen und Wörter zählen Java Basics - Anfänger-Themen 7
J Zahlen als Text übersetzen Java Basics - Anfänger-Themen 6
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
S Wort in Text suchen und ersetzen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
Z JSlider - Text wird nich angezeigt Java Basics - Anfänger-Themen 0
A Problem mit set.Text und übergabe Java Basics - Anfänger-Themen 2
A Probleme mit equals und get.Text Java Basics - Anfänger-Themen 12
M Text innerhalb Anführungsstriche als "eins" auswerten Java Basics - Anfänger-Themen 5
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
H Text durch Checkbox erscheinen lassen Java Basics - Anfänger-Themen 2
U markierten Text auf Zeichen zuvor/danach pruefen Java Basics - Anfänger-Themen 9
J Dienst zum Text kopieren und Variable hochzählen Java Basics - Anfänger-Themen 7
L Text verschlüsseln Java Basics - Anfänger-Themen 13
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
V Text wüerfeln-Rekursiv Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben