JList Elemente mit Strings vergleichen

fel1x

Mitglied
Guten Morgen! :)
Mein Programm macht mir noch immer zu schaffen. Ich bekomme es nicht hin, diese eine Methode zu schreiben. Eine kurze Erklärung was sie machen soll:
Sie geht die Liste mit den Filenamen durch und überprüft, ob der eingegebene Text mit einem Teil (oder komplett) mit einem File übereinstimmt. Ist das der Fall, wird der Filename zu einer neuen Liste hinzugefügt und zurückgegeben. Mein Problem ist nun, dass wenn es das File XX_DATUM_TEST gibt und ich nach DS suche, das D übereinstimmt und es zur neunen Liste hinzugefügt wird, obwohl es den Zusammenhang mit D UND S nicht gibt. Hier mein Code:
Java:
public List<File> suchen(String find) {
    List<File> matches = new ArrayList<File>();
    find = find.toUpperCase();
    
    if (files != null) {
        for (int i = 0; i < files.length; i++) {
            for (int x = 0; x < files[i].getName().length(); x++) {
                for (int z = 0; z < find.length(); z++) {
                    if (files[i].getName().charAt(x) == (find.charAt(z))) {
                        matches.add(files[i]);
                    }
                 }
              }
           }
        }
    return matches;
}
Ich hoffe mir kann jemand ein bisschen helfen. Danke im Voraus
 

fel1x

Mitglied
Ich habe es gerade so probiert wie du es meintest. Nur jetzt habe ich das Problem, dass obwohl ich nichts ausgewählt/eingegeben habe, trotzdem gesucht wird und jedes File aufgelistet wird.
Java:
public List<File> suchenOf(String find) {
 List<File> matches = new ArrayList<File>();
 find = find.toUpperCase();

 if ((files != null) && (find != "" || find != " ")) {
  for (int i = 0; i < files.length; i++) {
   if (files[i].getName().indexOf(find) != -1) {
    matches.add(files[i]);
   }
  }
 }
 return matches;
}
 

MoxxiManagarm

Top Contributor
Java:
find != "" || find != " "
Eins von beiden wir immer true sein und mit dem oder erhält der gesamte Ausdruck daher immer true.

Daher: && - sofern du es so belassen willst. Aber auch das empfehle ich nicht, was passiert, wenn du noch mehr Leerzeichen hast??

Daher:
Java:
"  ".trim().isEmpty()

PS.:
Java:
files != null

Eine null Liste haben zu können ist nicht unbedingt der beste Programmierstil. Wenn möglich schließe diesen Fall vorher aus indem du eine leere Liste bereitstellst.
 

MoxxiManagarm

Top Contributor
Naja warum sollte man nicht nach Filenamen suchen können die Leerzeichen enthalten? Das wäre mit Deiner Methode nicht mehr möglich.

Aber er will das doch ohnehin ausschließen..
Siehe if ((files != null) && (find != "" || find != " ")) {

Ich wollte ihm nur aufzeigen wie er den 2. Teil des Ausdruckes besser machen kann undabhängig von der möglichen Leerzeichensuche, welche dann nicht mehr geht.
 

fel1x

Mitglied
Daher: && - sofern du es so belassen willst.
Danke für deine Antwort! Zu den Files: Ein File mit mehreren Leerzeichen ist nicht möglich, weil diese automatisch immer mit zumindest dem Datum generiert werden. Ich hab die Bedingung geändert, nur ändert das leider nichts an der Ausgabe. Ich will mit der Bedingung verhindern, dass wen nach "nichts" gesucht wird, auch keine Filenamen aufgelistet werden, was gerade leider trotzdem passiert. Das wäre der ActionListener, bei dem die Methode aufgerufen wird
Java:
@Override
 public void actionPerformed(ActionEvent e) {
  String ac = e.getActionCommand();
  String[] namen;
  if (ac.equals("suchen")) {
   String[] namen2;
   String auswahl = oberfläche.getItem();
   if (!(auswahl.equals("Keine Auswahl"))) {
    List<File> liste2 = filesucher.suchenOf(auswahl);
    //if(liste2.size() == 0) {
     //oberfläche.clearAusgabe();
    //}
    for (int i = 0; i < liste2.size(); i++) {
     namen2 = new String[liste2.size()];
     namen2[i] = liste2.get(i).getName();
     oberfläche.addEntry(namen2[i]);
    }
   }
   
   String find = oberfläche.getEingabe();
   List<File> liste = filesucher.suchenOf(find);
   for (int i = 0; i < liste.size(); i++) {
    namen = new String[liste.size()];
    namen[i] = liste.get(i).getName();
    oberfläche.addEntry(namen[i]);
   }
  }
 }
 

MoxxiManagarm

Top Contributor
Java:
for (int i = 0; i < liste2.size(); i++) {
     namen2 = new [URL='http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string']String[/URL][liste2.size()];
     namen2[i] = liste2.get(i).getName();
     oberfläche.addEntry(namen2[i]);
    }

Du erstellst in jedem Schleifendurchlauf ein neues Array. Der Eintrag vom vorherigen Durchlauf ist dann weg.
 

fel1x

Mitglied
Java:
for (int i = 0; i < liste2.size(); i++) {
     namen2 = new [URL='http://www.google.com/search?hl=en&q=allinurl%3Adocs.oracle.com+javase+docs+api+string']String[/URL][liste2.size()];
     namen2[i] = liste2.get(i).getName();
     oberfläche.addEntry(namen2[i]);
    }

Du erstellst in jedem Schleifendurchlauf ein neues Array. Der Eintrag vom vorherigen Durchlauf ist dann weg.
Mhm stimmt, jetzt wo du es erwähnst...
Java:
if (!(auswahl.equals("Keine Auswahl"))) {
  List<File> liste2 = filesucher.suchenOf(auswahl);
  namen2 = new String[liste2.size()];
  for (int i = 0; i < liste2.size(); i++) {
   namen2[i] = liste2.get(i).getName();
   oberfläche.addEntry(namen2[i]);
Ich habe das erstellen von namen2 ober die for schleife gegeben, hat aber irgendwie keine Auswirkung auf das ergebnis
 

mkdrive2

Mitglied
1) Was gibt "oberfläche.getItem()" zurück?
2) Was gibt "oberfläche.getEingabe()" zurück?
3) Wie sieht die Datei-Liste in filesucher aus (die genauen Elemente)?
4) Was wird in der Liste mit "addEntry" hinzugefügt (die genauen Einträge)?
5) Wie sieht die "suchenOf"-Methode jetzt aus?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A JList Elemente in ein andres JList Adden Java Basics - Anfänger-Themen 5
M Jlist Elemente hinzufügen Java Basics - Anfänger-Themen 2
G Elemente aus jList entferne. Java Basics - Anfänger-Themen 2
E Elemente in JList anklicken Java Basics - Anfänger-Themen 5
L Wie herausfinden ob JList Elemente hinzugefügt wurden? Java Basics - Anfänger-Themen 6
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
U JList erstellen Java Basics - Anfänger-Themen 2
Soloeco JList/DefaultListModel: Wie kann ich ein Panel hinzufügen? Java Basics - Anfänger-Themen 1
J Objekt bei Auswahl in jList ändern Java Basics - Anfänger-Themen 6
D JList ListSelectionEvent entfernen? Java Basics - Anfänger-Themen 13
S Export aus JList Java Basics - Anfänger-Themen 6
M Erste Schritte JList einträge Java Basics - Anfänger-Themen 1
M Erste Schritte Doppelte Ausgabe? (JList) Java Basics - Anfänger-Themen 1
M Erste Schritte Auswahl in einer JList Java Basics - Anfänger-Themen 2
P JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen Java Basics - Anfänger-Themen 4
N JList + DefaultListModel + JScrollPane --> ensureIndexIsVisible funktioniert nicht immer Java Basics - Anfänger-Themen 1
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
J Element zu jList hinzufügen NullPointerExcepetion Java Basics - Anfänger-Themen 2
S jList --> Array einfügen und Liste löschen Java Basics - Anfänger-Themen 5
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
I in listFiles() oder JList Dateiendungen entfernen Java Basics - Anfänger-Themen 14
N Erste Schritte MySQL Tabelle in JList darstellen Java Basics - Anfänger-Themen 1
O JList aktualisieren während Dateieinlesung Java Basics - Anfänger-Themen 4
B JFileChooser und JList Java Basics - Anfänger-Themen 7
OnDemand Enumeration <> JList Java Basics - Anfänger-Themen 5
P Mehrfachauswahl in einer JList Java Basics - Anfänger-Themen 2
C .txt und Jlist Java Basics - Anfänger-Themen 10
J Daten in eine JList einfügen Java Basics - Anfänger-Themen 6
A JList / toString modify Java Basics - Anfänger-Themen 2
K jlist an text anpassen Java Basics - Anfänger-Themen 3
D Erste Schritte JList + Checkbox Java Basics - Anfänger-Themen 5
I kein zugriff auf jList oder Textfield Java Basics - Anfänger-Themen 2
A JList bearbeiten Java Basics - Anfänger-Themen 2
M Index einer JList ausgeben Java Basics - Anfänger-Themen 4
M Inhalt/Wert aus einer JList ablesen Java Basics - Anfänger-Themen 5
J Markierte Einträge (Dateien) in JList sollen in einen anderen Ordner verschoben werden. Java Basics - Anfänger-Themen 12
J Markierte Items in einer JLIST in einen Ordner verschieben Java Basics - Anfänger-Themen 2
A Input/Output Hashmap in einem JPanel via JList anzeigen Java Basics - Anfänger-Themen 8
S ListModel - Anzeige im JList Java Basics - Anfänger-Themen 4
H JList Java Basics - Anfänger-Themen 2
G JList Objekte richtig anzeigen in JDK 6 Java Basics - Anfänger-Themen 5
U JList Java Basics - Anfänger-Themen 6
L HashMap zu JList Java Basics - Anfänger-Themen 6
C Input/Output Inhalte von ArrayList und JList in Datei schreiben Java Basics - Anfänger-Themen 5
F Koordinaten JList darstellen Java Basics - Anfänger-Themen 4
M BeanBinding Jlist an Jlabel Java Basics - Anfänger-Themen 2
M GUI JList - Objekte listen u. Feld anzeigen? Java Basics - Anfänger-Themen 16
E JList GUI aktualisieren? Java Basics - Anfänger-Themen 3
JAVAnnik JList Auswahl Java Basics - Anfänger-Themen 2
Z In JList per Doppelklick eine Datei öffnen (z.B. ein PDF) Java Basics - Anfänger-Themen 16
P Jlist + Popupmenu Java Basics - Anfänger-Themen 10
M Properties Eintrag löschen, welcher in der JList "ausgewählt" wurde Java Basics - Anfänger-Themen 2
c_sidi90 File Array an Jlist übergeben Java Basics - Anfänger-Themen 11
J JList Inhalt nach JButton Klick aktualisieren Java Basics - Anfänger-Themen 8
B JList und JTable: leere Zeilen bei listfiles(); Java Basics - Anfänger-Themen 5
N DefaultListModel auf JList sortieren Java Basics - Anfänger-Themen 7
A JList mit Überschrift Java Basics - Anfänger-Themen 2
K Scrollbalken in JList funktioniert nicht Java Basics - Anfänger-Themen 9
B JList wird nicht aktualisiert bzw hat keine Items Java Basics - Anfänger-Themen 2
D JList nicht sichtbar Java Basics - Anfänger-Themen 4
B JList mit Scrollbar? Java Basics - Anfänger-Themen 7
K Datenbindung an JTable, JList, Primärschlüssel verstecken Java Basics - Anfänger-Themen 4
M JList Event Java Basics - Anfänger-Themen 5
M JList Index selektieren ausschalten. Java Basics - Anfänger-Themen 7
M ArrayList<int[]> - Problem mit JList! Java Basics - Anfänger-Themen 27
M JList + ListModel Java Basics - Anfänger-Themen 26
L JList Aktualisieren funktioniert nur Zufällig Java Basics - Anfänger-Themen 3
T JList aktualisieren Java Basics - Anfänger-Themen 12
T alle Ordner in einem Ordner in JList anzeigen Java Basics - Anfänger-Themen 3
R .Jpg anzeigen lassen nach klick in JList Java Basics - Anfänger-Themen 11
F Hilfe! JList Inhalte vertauschen Java Basics - Anfänger-Themen 2
A Eintrag einer JLIST speichern Java Basics - Anfänger-Themen 3
A Anordnung von JList Elementen Java Basics - Anfänger-Themen 3
B JList wird nach Ändern weiß Java Basics - Anfänger-Themen 11
B Einträge im JList einfügen Java Basics - Anfänger-Themen 9
S JList mit icons UND strings für Dialogbox Java Basics - Anfänger-Themen 2
hdi Fehler beim Model-Update einer JList (DefaultListModel) Java Basics - Anfänger-Themen 3
DStrohma Index einer markierten Zeile aus einer JList bekommen? Java Basics - Anfänger-Themen 5
P JList in JPanel anzeigen Java Basics - Anfänger-Themen 2
hdi Synchronisation zwischen JList und ListModel Java Basics - Anfänger-Themen 6
D Suche in JList nach dem ersten Buchstaben Java Basics - Anfänger-Themen 2
hdi JList mit Model und Observer -> Chaos, blicke nicht durch Java Basics - Anfänger-Themen 22
1 JList Problem : Synchronisation mit Vector klappt nicht :( Java Basics - Anfänger-Themen 6
G JList updaten Java Basics - Anfänger-Themen 7
K jList scrollPane Java Basics - Anfänger-Themen 2
7 Java Swing: Wie JScrollPane zur JList hinzufügen? Java Basics - Anfänger-Themen 12
K JList verschiebt sich Java Basics - Anfänger-Themen 7
G String in JList Java Basics - Anfänger-Themen 11
T Jlist Object hinzufügen Java Basics - Anfänger-Themen 2
B Auslesen der JList Java Basics - Anfänger-Themen 11
S jList Multiple Selection mit Klick Java Basics - Anfänger-Themen 2
M Dateien in einem Ordner, JList Java Basics - Anfänger-Themen 7
G JList größe verändert sich Java Basics - Anfänger-Themen 2
M JList Parameter verschieben Java Basics - Anfänger-Themen 3
C jList - Zeile Markieren - jList.setSelectedIndex(wert); Java Basics - Anfänger-Themen 3
G JList mit LinkedList füllen Java Basics - Anfänger-Themen 2
G JList Mehrfachselektion Java Basics - Anfänger-Themen 6
N 2 spaltige JList, mit dynamischen Inhalt Java Basics - Anfänger-Themen 4
P JList mit setListData(<Vector>) Java Basics - Anfänger-Themen 7
J GUI mit JList Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben