Texteingabe mit String Arraywerten vergleichen

Status
Nicht offen für weitere Antworten.
B

Babbbsi

Gast
Hallo,
eigentlich läuft mein Programm soweit. Man gibt in ein Textfeld ein Wort ein und auf Knopfdruck wird die Eingabe mit Werten aus einem Stringarray("eingabe") verglichen. Falls dass Wort da ebenfalls enthalten ist gibt er in der Ausgabelistbox ein alternatives Wort dazu aus welches er von einem 2. Stringarray namens "alternativen" bekommt.
Allerdings hab ich das Problem dass er das nur mit dem 1. Wert korrekt macht aber wenn ich den Wert für die 2. Eingabe eingebe, also "eingabe2" gibt er trotzdem den alternativwert vom 1. Eingabewert aus, also immernoch "eingabe1"
was muss ich ändern damit er immer den passenden Wert ausgibt? (wenn das eingegebene Wort an 5. position im Eingabe-Array steht soll er auch den 5. Wert des Alternativ-Arrays ausgeben)
Finde den Fehler einfach nicht...

Code:
/*
 * Eingabe.java
 *
 * Created on 6. September 2006, 12:55
 */

package anglizismenindex;

//Klassen importieren
import javax.swing.*;
/**
 *
 * @author  Axel
 */
public class Eingabe extends javax.swing.JFrame {
    
    /** Creates new form Eingabe */
    public Eingabe() {
        initComponents();
        jList1.setModel(liste);
        this.setSize(500,400);
        
            //Werte des Eingabe-Speichers
    eingabe[0]="eingabe1";
    eingabe[1]="eingabe2";
    
    //Werte des Alternativen-Speichers
    alternativen[0]="Test1";
    alternativen[1]="eingabe2, Bla, bla, bla blaodjdje";
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jTextField1 = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jList1 = new javax.swing.JList();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenuItem5 = new javax.swing.JMenuItem();

        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().add(jTextField1, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 40, 240, 40));

        jScrollPane1.setViewportView(jList1);

        getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(190, 170, 240, 140));

        jLabel1.setText("Anglizismus-Eingabe:");
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 50, -1, -1));

        jLabel2.setText("Alternativen:");
        getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 170, -1, -1));

        jButton1.setText("Eingabe pr\u00fcfen");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(240, 110, -1, -1));

        jMenu1.setText("Datei");
        jMenuItem4.setText("Beenden");
        jMenu1.add(jMenuItem4);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Hilfe");
        jMenuItem1.setText("Info");
        jMenu2.add(jMenuItem1);

        jMenuItem2.setText("\u00dcber");
        jMenu2.add(jMenuItem2);

        jMenuItem3.setText("Verweise");
        jMenu2.add(jMenuItem3);

        jMenuItem5.setText("Aktualisieren");
        jMenu2.add(jMenuItem5);

        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        pack();
    }// </editor-fold>                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:
        jTextField1.setText("");
        
        
        for (int i=0; i<index; i++)
        {
            if(jTextField1.getText().equals(eingabe[i]));
        }
        ausgeben(alternativen[i]);
        
    }                                        
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Eingabe().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JList jList1;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration                   
    //Deklarationen
    int index;
    int i;
    
    //Listbox(Ausgabefenster)
    DefaultListModel liste = new DefaultListModel();
    
    //Array(Speicher) für 10000 Eingabewerte
    String eingabe[] = new String[10000];
    
    //Array(Speicher) für 10000 Alternativen
    String alternativen[] = new String[10000];
    
    //Methode "ausgeben" deklarieren
    public void ausgeben (String alternativen)
    {
        liste.add(0, alternativen);
    }
}

Danke!
 

Tobias

Top Contributor
Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:
        jTextField1.setText("");
       
       
        for (int i=0; i<index; i++)
        {
            if(jTextField1.getText().equals(eingabe[i]));
        }
        ausgeben(alternativen[i]);
       
    }

Das hier is kaputt. Dieser Code wird dir auf immer und ewig den ersten alternativen Text ausgeben. Und zwar deshalb: Das Semikolon beendet die if-Abfrage, ohne das irgendwelcher bedingter Code zur Ausführung kommen würde. Und dann steht ausgeben(alternativen) auch noch ausserhalb der Schleife.

Das hier sollte gehen (vorrausgesetzt, sonst geht alles ;)):

Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:
        jTextField1.setText("");
       
       
        for (int i=0; i<index; i++)
        {
            if(jTextField1.getText().equals(eingabe[i])) {
                    ausgeben(alternativen[i]);
                    break;
            }
        }
               
    }

Das "break;", das ich noch eingefügt habe, ist eigentlich nicht nötig, es stellt nur eine kleine Beschleunigungsmöglichket dar (die du bei diesem Code aber keinesfalls messen können oder gar spüren wirst).

mpG
Tobias

P.S.: Alle Bezeichner englisch wählen; Bezeichner wie jButton1 sind böse - wer soll sowas denn nach einem halben Jahr noch verstehen? - Texte nach "//" sind Kommentare, die kanst du entfernen, wenn du sie nicht mehr brauchst...
 
G

Guest

Gast
kann vielleicht daran liegen, das
Code:
jTextField1.getText()
100% mit deinem eingetragenen wort übereinstiimen muss. Würde zum bespiel mit
Code:
trim()
oder
Code:
toUpperCase()
den Eingabe String etwas "Normieren". Natürlich musst du dann auch die Vergleichswerte etwas anpassen.
 

Tobias

Top Contributor
Mh, wenn jetzt gar nichts mehr kommt, dann schlägt vermutlich der Vergleich in der If-Bedingung fehl, wie mein Vorredner bereits erkannt hat.

Hier kannst du einerseits wie vorgeschlagen mt String-Normierungen hantieren (was aber u.U. nicht die Anforderungen trifft) oder einen Debugger auspacken und mal erleben, was Entwickler so etwa 50% des Tages tun (wenn sie nicht mit JUnit arbeiten).

mpG
Tobias
 

Tobias

Top Contributor
Kommando zurück! Der Fehler ist so offensichtlich, das er schon wieder als gut versteckt gelten muss:

Code:
jTextField1.setText("");

Damit setzt du den Text immer auf einen leeren String zurück. An sich nichts schlechtes, aber wenn du das machst, bevor du dir die Eingabe des Users holst, hast du ein Problem...

Also: obige Zeile an das Ende der actionPerformed() kopieren (ud sie am Anfang der Methode löschen).

mpG
Tobias
 
B

Babbbsi

Gast
:D Habs geschafft! :applaus:
Vielen dank für eure Hilfe!!! :toll:

Das mit dem jTextfield löschen am Anfang klang wirklich plausibel nur ging es danach immer noch nicht. Habe jetzt noch mal Stundenlang rumexperimentiert und andere Lösungen probiert und am Ende gings!
Nur das ich jetzt am Ende beim gleichen Quellcode rauskam den mir Tobias schon vor Stunden geraten hat :lol:

Naja, jdenfalls geht es mit diesem Code:
Code:
for (int i=0; i<index; i++)
        {
            if(jTextField1.getText().equals(eingabe[i]))
            {
                ausgeben(alternativen[i]);
            }               
         }      
        jTextField1.setText("");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Probleme mit Zahlenfilter bei Texteingabe mithilfe String matches Java Basics - Anfänger-Themen 4
W Texteingabe - Bedeutung Fehlermeldung, Lösung? Java Basics - Anfänger-Themen 18
B Erst lesen: Automatisch Texteingabe bestätigen Java Basics - Anfänger-Themen 6
S Texteingabe in Textarea sperren? Java Basics - Anfänger-Themen 3
R Texteingabe-Formluar Java Basics - Anfänger-Themen 9
S Kann einfache Texteingabe nicht auswerten! Java Basics - Anfänger-Themen 3
J texteingabe in Fenster (JTextField) Java Basics - Anfänger-Themen 8
B Texteingabe im Textpane unterbinden Java Basics - Anfänger-Themen 2
C Methode der Texteingabe Java Basics - Anfänger-Themen 4
D Gleichzeitiger Bild + Texteingabe aufruf ? Java Basics - Anfänger-Themen 6
K Neues Fenster per Buttonklick, Texteingabe speichern Java Basics - Anfänger-Themen 9
P Texteingabe Java Basics - Anfänger-Themen 7
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
T String splitten Java Basics - Anfänger-Themen 3
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
T Platzhalter in String? Java Basics - Anfänger-Themen 14
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
T Leerzeichen im String entfernen Java Basics - Anfänger-Themen 6
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
N null in String replacen Java Basics - Anfänger-Themen 16
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
D String mit int multiplizieren? Java Basics - Anfänger-Themen 16
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
I String Expression mit Java validieren (true / false) Java Basics - Anfänger-Themen 34
B String - Wörter finden, welches Punkt und entsprechender Pre / Suffix hat? Java Basics - Anfänger-Themen 30

Ähnliche Java Themen

Neue Themen


Oben