VokabelAnfrageprogramm

JavaNewbie2.0

Bekanntes Mitglied
Hei ich habe mir überlegt ein Vokabel abfrage programm zu machen.
Folgendes man Gibt einen Vokabel ein dieser wird gespeichert. Dann gib man den Vokabel ein und es wird angegeben ob er richtig war oder nicht so. Ich hab mir das so gedacht ich schreibe 2 programme 1 wo man es einegben kann und ein 2. wo man es abfragen kann ich werde später mal meinen ansatz posten vlt. kann mir dann ja wer weiterhelfen weil ich hab so eine ahnung aber nicht wie ich es zu 100% mache.
 

Joose

Top Contributor
Wobei weiterhelfen? Wir können dir helfen wenn du vor einem konkreten Problem stehst.

Anmerkung: Schreibe doch lieber nur ein Programm, in welchem man sie einerseits eingeben kann aber auch abfragen/lernen kann.
 
X

Xyz1

Gast
Vielleicht so stelle ich mir das vor:

GVILewM.png


Ist aber noch ohne Funktion bis jetzt
(Bin mir noch uneins, wo Daten gespeichert werden sollten - Cloud^^)
 

JavaNewbie2.0

Bekanntes Mitglied
Hier ist mein anfang aber wie mache ich das jeweils immer bei der text datei das so steht
Code:
Deutsches Wort    Englisches Wort

hallo            hello

Deutsches Wort    Englisches Wort

gut             good

Also das es immer automatisch
Deutsches Wort Englisches Wort einfügt.

Mein bisheriger Code

Java:
package abfrage;

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

public class Abfrage {

    private static Scanner sc;

    public static void main(String[] args) throws IOException {

        Scanner sc = new Scanner(System.in);
        FileWriter file = new FileWriter(new File("vokabeln.txt"));

        String eingabe = "";

        while (!eingabe.equals("q")) {
            System.out.println("Deutsches Wort                EnglischesWort");
          
            eingabe = sc.nextLine();
            file.write(eingabe + "\n");
        }

        sc.close();
        file.close();

    }

}
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
Du musst deinen Programm natürlich sagen das es "Deutsches Wort Englisches Wort" auch in die Datei schreiben soll.
Dass machst du nicht anders als mit deiner Eingabe ... einfach die Methode "write" vom FileWriter aufrufen und den gewünschten String übergeben.
 

JavaNewbie2.0

Bekanntes Mitglied
Du musst deinen Programm natürlich sagen das es "Deutsches Wort Englisches Wort" auch in die Datei schreiben soll.
Dass machst du nicht anders als mit deiner Eingabe ... einfach die Methode "write" vom FileWriter aufrufen und den gewünschten String übergeben.

Wie überspringe ich eine anweisung gibts da was ganz einfaches?


Also zb:

mein code xy

zb: etwas was alles löscht was in die datei eingeschreiben wurde (Das übersrpingen)

code xy
....
 

JavaNewbie2.0

Bekanntes Mitglied
Ich habe ein Problem folgendes er gibt irgendwas komisches aus.

Java:
package abfrage;

import java.util.Scanner;

public class abfrage {

    public static void main(String[] args) {

        String[] vokabeln = new String[3];
        String eingegebenesWort;
        eingegebenesWort = "";
        String ed = "Deutsches Wort                EnglischesWort";

        Scanner sc = new Scanner(System.in);

        for (int i = 0; i < vokabeln.length; i++) {
            System.out.println("Deutsches Wort                EnglischesWort");
            vokabeln[i] = sc.nextLine();
        }

   

        /*
         * for (String eingabe : vokabeln) {
         * System.out.println("Deutsches Wort                EnglischesWort");
         * System.out.println(eingabe); }
         */
        for (int e = 0; e < vokabeln.length; e++) {
            System.out.println(ed);
            System.out.println(vokabeln);
            eingegebenesWort = sc.nextLine();
            if (eingegebenesWort == vokabeln[e]) {
                System.out.println("Ihr vokabel war richtig eingegeben");

            } else {
                System.out.println("Ihr vokabel wurde falsch eingegeben");
            }
        }

    }

}

das hier wird ausgegeben eigentlich ist ja fast alles ok aber statt diesem "[Ljava.lang.String;@4554617c" sollte er den jeweiligem Vokabel ausgeben den ich einegben habe ja ich weis es wird das deutsche und das englische normalerweise ausgegeben wenn ich da so richtig gedacht habe. Mir fällt nichts ein was ich falsch gemacht habe es wird auch kein fehler angegeben.
Code:
Deutsches Wort                EnglischesWort
s                s
Deutsches Wort                EnglischesWort
s                s
Deutsches Wort                EnglischesWort
s                s
Deutsches Wort                EnglischesWort
[Ljava.lang.String;@4554617c
s                d
Ihr vokabel wurde falsch eingegeben
Deutsches Wort                EnglischesWort
[Ljava.lang.String;@4554617c
s                s
Ihr vokabel wurde falsch eingegeben
Deutsches Wort                EnglischesWort
[Ljava.lang.String;@4554617c
 

Joose

Top Contributor
Was willst du überspringen? Versuche es genauer zu erklären.

Theoretisch hilft dir da eine normale if-Anweisung. Du legst die Bedingung fest .. wenn diese erfüllt ist wird etwas ausgeführt, wenn nicht kann etwas anderes ausgeführt werden.
 

Joose

Top Contributor
Ich habe ein Problem folgendes er gibt irgendwas komisches aus.
Du gibst hier ein String[] aus, da es sich dabei um keinen einfachen Datentypen handelt wird die Speicheradresse des Objektes ausgegeben.
Java:
            System.out.println(ed);
            System.out.println(vokabeln[e]);
Hänge den Index an dann bekommst du deinen String ausgegeben.

Hinweis Strings werden mit equals (Methode) verglichen nicht mit == (damit vergleicht man nur primitive Datentypen)!
 

JavaNewbie2.0

Bekanntes Mitglied
Du gibst hier ein String[] aus, da es sich dabei um keinen einfachen Datentypen handelt wird die Speicheradresse des Objektes ausgegeben.
Java:
            System.out.println(ed);
            System.out.println(vokabeln[e]);
Hänge den Index an dann bekommst du deinen String ausgegeben.

Hinweis Strings werden mit equals (Methode) verglichen nicht mit == (damit vergleicht man nur primitive Datentypen)!
Ich hab das jetzt so geschriben aber das geht irgendwie nicht
Code:
if (eingegebenesWort  equals.vokabeln[e]) {

Wie müsste ich das dann schreiben
 

JavaNewbie2.0

Bekanntes Mitglied
Was willst du überspringen? Versuche es genauer zu erklären.

Theoretisch hilft dir da eine normale if-Anweisung. Du legst die Bedingung fest .. wenn diese erfüllt ist wird etwas ausgeführt, wenn nicht kann etwas anderes ausgeführt werden.
Ich mag eine bestimmte ausführung überspringen.

zb
Code:
String[] vokabeln = new String[3];
        String eingegebenesWort;
        eingegebenesWort = "";
        String ed = "Deutsches Wort                EnglischesWort";

        Scanner sc = new Scanner(System.in);

        for (int i = 0; i < vokabeln.length; i++) {
            System.out.println("Deutsches Wort                EnglischesWort");
            vokabeln[i] = sc.nextLine();
        }
und dann machte der untere Teil des programms weiter
 

Joose

Top Contributor
Ich hab das jetzt so geschriben aber das geht irgendwie nicht
Code:
if (eingegebenesWort  equals.vokabeln[e]) {
equals ist eine Methode der Klasse String.
Im Internet stehen unzählige Tutorials wie man diese bzw generell Methoden aufruft, das ist eine Grundlage.
https://www.tutorialspoint.com/java/java_string_equals.htm

Ich mag eine bestimmte ausführung überspringen.
....
und dann machte der untere Teil des programms weiter
Ich bin mir immer noch nicht sicher ob ich dich richtig verstanden habe. (es ist immer noch nicht ganz klar was du überspringen möchtest bzw. was der untere teil des programmes ist).

Wenn du den von dir geposteten Code überspringen willst (nicht ausführen lassen willst) dann mach eine if-Bedingung darum.
Java:
if( [DEINE BEDINGUNG] ) {
     ... dein code der nur ausgeführt werden sollen wenn die bedingung zutrifft ...
}
.... der code der immer ausgeführt werden soll unabhängig von der bedingung ....
 

JavaNewbie2.0

Bekanntes Mitglied
equals ist eine Methode der Klasse String.
Im Internet stehen unzählige Tutorials wie man diese bzw generell Methoden aufruft, das ist eine Grundlage.
https://www.tutorialspoint.com/java/java_string_equals.htm


Ich bin mir immer noch nicht sicher ob ich dich richtig verstanden habe. (es ist immer noch nicht ganz klar was du überspringen möchtest bzw. was der untere teil des programmes ist).

Wenn du den von dir geposteten Code überspringen willst (nicht ausführen lassen willst) dann mach eine if-Bedingung darum.
Java:
if( [DEINE BEDINGUNG] ) {
     ... dein code der nur ausgeführt werden sollen wenn die bedingung zutrifft ...
}
.... der code der immer ausgeführt werden soll unabhängig von der bedingung ....
ok dann mach ich das so
 

Neue Themen


Oben