Erste Schritte If Bedingung in Schleife dynamisch erweitern

fetcher

Mitglied
Hallo liebes Forum,
ich möchte eine If-Anweisung dynamisch in einer For-Schleife erweitern. Und weis leider nicht genau wie ich das anstellen soll. Der Suchstring wird mit split(" "); in einzelne Wörter zerhackt.

Anschließend soll die Anweisung:
Java:
if(elem.toLowerCase().contains(Suchstring.toLowerCase()))
			{
				model.addRow(new Object[]{elem});
				anzahlTreffer++;
			}

erweitert werden mit "&&".
Damit meine ich eigentlich:

Java:
			if(elem.toLowerCase().contains(SuchstringSplit[0].toLowerCase()) && elem.toLowerCase().contains(SuchstringSplit[1].toLowerCase()))
			{
				model.addRow(new Object[]{elem});
				anzahlTreffer++;
			}

So wie hier oben sollte das dann aussehen. Nur eben dynamisch in einer For-Schleife, da ich ja vorher nicht weis wieviele Suchbegriffe eingegeben wurden.

Das ist der komplette Code ich hoffe es kann mir hier jemand helfen.

Java:
public DefaultTableModel getTableSuche(String Suchstring)
	{
		String SuchstringSplit[] = Suchstring.split(" ");
		
		
		DefaultTableModel model = new DefaultTableModel(); 
		anzahlTreffer = 0;
		
		model.addColumn("Name"); 
		
		Collections.sort(EinlesenSQL.BuecherArrListSQL);
		
		for(String elem : EinlesenSQL.BuecherArrListSQL)
		{	
			
			/*
			for(int i = 0; i < SuchstringSplit.length; i++)
			{
				
				
				if(elem.toLowerCase().contains(SuchstringSplit[i].toLowerCase()))
				{
					
				}
			}
			*/
			
			
			if(elem.toLowerCase().contains(SuchstringSplit[0].toLowerCase()) && elem.toLowerCase().contains(SuchstringSplit[1].toLowerCase()))
			{
				model.addRow(new Object[]{elem});
				anzahlTreffer++;
			}
			
		}
		
		return model;
		
	}


Vielen Dank
Gruß fetcher
 

Flown

Administrator
Mitarbeiter
Mit einem boolean-Flag?

Java:
import java.util.regex.Pattern;
import java.util.stream.Stream;

public class Test {
  
  public static final String IPSUM_LOREM = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy "
      + "eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et "
      + "justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. "
      + "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et "
      + "dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet "
      + "clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.";
  
  public static void main(String[] args) {
    String[] sentences = IPSUM_LOREM.split(Pattern.quote("."));
    
    String searchCriteria = "lorem ipsum dolor";
    
    // Normal
    for (String sentence : sentences) {
      boolean matchesAll = true;
      for (String criteria : searchCriteria.split(" ")) {
        if (!sentence.toLowerCase().contains(criteria.toLowerCase())) {
          matchesAll = false;
        }
      }
      if (matchesAll) {
        System.out.println(sentence);
      }
    }
    
    // Lambda
    Stream.of(sentences).filter(s -> Stream.of(searchCriteria.split(" ")).map(String::toLowerCase).allMatch(criteria -> s.toLowerCase().contains(criteria)))
    .forEach(System.out::println);
    ;
  }
}
 

fetcher

Mitglied
Hallo Flown,
vielen Dank für deine Antwort. Ich verstehe den Code leider nicht so ganz. Wie würde das ganze denn mit meinem Beispiel aussehen?


Vielen, vielen Dank.
Gruß
fetcher
 

Flown

Administrator
Mitarbeiter
Wo hakt es denn?

Mit einem boolean Flag sollte es doch gelöst sein. Und ich werde es nicht mit deinem Code machen, denn 1. habe ich mir ihn nicht durchgesehen und 2. Eigeninitiative sollte vorhanden sein.

Prosa:
Iteriere über alle Strings die du prüfen willst.
Java:
for(String s : search) {
Setze boolean flag
Java:
boolean flag = true;
Iteriere über alle Suchkriterien die du haben möchtest und prüfe ob alle in dem String vorhanden sind:
Java:
for(String criteria : searchCriteria.split(" ")) {
  if(!s.toLowerCase().contains(criteria.toLowerCase()) {
    flag = false;
    break; // Kannst du zur Optimierung verwenden um aus der Schleife rauszukommen
  }
}
Nun prüfe ob alle Suchkriterien erfüllt wurden (mit anderen Worten alle drinnen waren und das Flag noch auf true ist)
Java:
 if(flag) {
  // s erfüllt alle deiner Suchkriterien und du kannst mit s weiterarbeiten
  System.out.println(s);
}
}
 
Zuletzt bearbeitet:

fetcher

Mitglied
Jetzt habe ich es verstanden :) Vielen Dank nochmal.

So sieht jetzt mein Code aus:

Java:
public DefaultTableModel getTableSuche(String Suchstring)
	{
		String SuchstringSplit[] = Suchstring.split(" ");
		
		
		DefaultTableModel model = new DefaultTableModel(); 
		anzahlTreffer = 0;
		
		model.addColumn("Name"); 
		
		Collections.sort(EinlesenSQL.BuecherArrListSQL);
		
		for(String elem : EinlesenSQL.BuecherArrListSQL)
		{	
			boolean matchesAll = true;
			
			
			
			for(int i = 0; i < SuchstringSplit.length; i++)
			{
				
				
				if(!elem.toLowerCase().contains(SuchstringSplit[i].toLowerCase()))
				{
					matchesAll = false;
					break;
				}
			}
		
			
			if(matchesAll)
			{
				model.addRow(new Object[]{elem});
				anzahlTreffer++;
			}
			
		}
		
		return model;
		
	}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
P Bedingung in Schleife wird nicht ausgeführt Java Basics - Anfänger-Themen 5
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Compiler-Fehler Wird eine if Bedingung nach einer for-Schleife nach jeder Iteration überprüft? Java Basics - Anfänger-Themen 1
X Schleife bis "Bedingung" ausführen Java Basics - Anfänger-Themen 13
R for-Schleife bei erfüllter Bedingung beenden Java Basics - Anfänger-Themen 7
MiMa for Schleife Bedingung Java Basics - Anfänger-Themen 4
S for schleife mit if bedingung Java Basics - Anfänger-Themen 21
2 Bedingung bei Schleife Java Basics - Anfänger-Themen 23
H Bedingung while-Schleife | integer number too large Java Basics - Anfänger-Themen 2
G If-Schleife läuft ohne erfüllte Bedingung Java Basics - Anfänger-Themen 13
S For Schleife, Bedingung Java Basics - Anfänger-Themen 4
M Schleife abhängig von Bedingung Java Basics - Anfänger-Themen 5
T if-else Bedingung wird ignoriert Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
Lion.King if-Bedingung Java Basics - Anfänger-Themen 3
Avalon Warum funktioniert eine Bedingung und eine andere nicht? Java Basics - Anfänger-Themen 2
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
M Wie lassen sich Objektkonstanten initialisieren, wenn sie eine Bedingung erreichen? Java Basics - Anfänger-Themen 6
M Wie verknüpfe ich eine Bedingung mit einer Methode ohne if-Verzweigung & Bedingungsoperator? Java Basics - Anfänger-Themen 2
A Dividieren mit Bedingung? Java Basics - Anfänger-Themen 7
Dimax Collections groupingBy mit Bedingung Java Basics - Anfänger-Themen 11
H Frage zur if-Bedingung bzw switch case Java Basics - Anfänger-Themen 6
F Bedingung für Eingabe Java Basics - Anfänger-Themen 2
scratchy1 Variablen vertauschen wenn Bedingung "umgedreht" wird Java Basics - Anfänger-Themen 40
Hanschyo If Bedingung Fehler Java Basics - Anfänger-Themen 7
T Komischer Fehler mit einer if-Bedingung Java Basics - Anfänger-Themen 3
E if-Bedingung mit mehreren Möglichkeiten ? Java Basics - Anfänger-Themen 6
S DefaultTableCellRenderer mit Bedingung Java Basics - Anfänger-Themen 1
J Fehler abfangen mit einer Bedingung Java Basics - Anfänger-Themen 3
Z Verschachtelte If-Bedingung Java Basics - Anfänger-Themen 6
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
B Kann mir jemand diese Bedingung erklären Java Basics - Anfänger-Themen 5
L Methoden if Bedingung trotz Erfüllung, nicht angesprochen Java Basics - Anfänger-Themen 12
P Compiler-Fehler if Bedingung fehlerhaft Java Basics - Anfänger-Themen 7
TheMenox Verschachtelte If Bedingung Java Basics - Anfänger-Themen 4
M Erste Schritte if-Bedingung schlägt fehl Java Basics - Anfänger-Themen 4
T Eigene Bedingung in IF-Bedingung Java Basics - Anfänger-Themen 22
Ocram Variablen Vereinfachung einer Bedingung Java Basics - Anfänger-Themen 18
J Can't find symbol - Erstellung eines Objekts in if-Bedingung Java Basics - Anfänger-Themen 3
M Frage zu if-Bedingung Java Basics - Anfänger-Themen 1
J Wo liegt nur an dieser einfachen Bedingung mein Fehler? Java Basics - Anfänger-Themen 8
R if funktion ohne else - Bedingung trifft nicht zu, ausgabe nicht nachvollziehbar Java Basics - Anfänger-Themen 7
S if bedingung - Stunde und Minute vergleichen Java Basics - Anfänger-Themen 5
K If-Bedingung mit Wertzuweisung Java Basics - Anfänger-Themen 2
J Vererbung If-Bedingung im Konstruktor Java Basics - Anfänger-Themen 15
J Arrays prüfen und über if Bedingung ausgeben Java Basics - Anfänger-Themen 15
T if Bedingung Java Basics - Anfänger-Themen 16
M in jTable schreiben unter Bedingung Java Basics - Anfänger-Themen 3
J Erste Schritte Kurze Frage zu Listenern und If-Bedingung Java Basics - Anfänger-Themen 2
N Verifikation einer if-Bedingung Java Basics - Anfänger-Themen 9
P Variablen ArrayList mit Bedingung iterieren Java Basics - Anfänger-Themen 2
E if(Bedingung) Java Basics - Anfänger-Themen 9
L Erste Schritte Sollte ich hier lieber Cases verwenden oder wäre eine If-Bedingung besser? Java Basics - Anfänger-Themen 6
Anfänger2011 Wie bricht man alles ab wenn eine Bedingung nicht erfüllt ist? Java Basics - Anfänger-Themen 21
P Variablen Variable in if Bedingung anlegen, Wert zuweisen und diesen als Bedingung nutzen Java Basics - Anfänger-Themen 4
M Und Bedingung Java Basics - Anfänger-Themen 17
N Bedingung für Datentypen Java Basics - Anfänger-Themen 3
E if-Bedingung funktioniert nicht Java Basics - Anfänger-Themen 9
W Funktionsaufruf nach Bedingung Java Basics - Anfänger-Themen 3
S return(Bedingung) ? [mehrere Befehle] Java Basics - Anfänger-Themen 5
E Methode in der Bedingung Java Basics - Anfänger-Themen 11
E if Bedingung Java Basics - Anfänger-Themen 4
H Sortierung eines String[][] mit Bedingung Java Basics - Anfänger-Themen 7
J Gibt es eine möglichkeit ähnlich wie .equals(bedingung1 ||bedingung ..n) ? Java Basics - Anfänger-Themen 5
I Potenzmenge mit Bedingung Java Basics - Anfänger-Themen 24
S If-Bedingung Java Basics - Anfänger-Themen 15
P Einfache Bedingung (?) in Java Java Basics - Anfänger-Themen 3
K Fragen zu If-Bedingung Java Basics - Anfänger-Themen 3
S bedingung in variable speichern? Java Basics - Anfänger-Themen 8
neurox Ergebnis der if-Bedingung weiter verwenden Java Basics - Anfänger-Themen 5
K Logik in if-Bedingung Java Basics - Anfänger-Themen 2
S if anweisung wird ausgeführt egal ob bedingung true o. false Java Basics - Anfänger-Themen 2
S Wildcard-Bedingung Java Basics - Anfänger-Themen 10
G Probleme mit break hier; in if-Bedingung Java Basics - Anfänger-Themen 5
G while Bedingung? Java Basics - Anfänger-Themen 6
L Bedingung immer false, auch wenn zwei Strings gleich sind Java Basics - Anfänger-Themen 11
L IF Bedingung in SELECT Statement? Java Basics - Anfänger-Themen 3
M Kleine Frage zu If-Bedingung Java Basics - Anfänger-Themen 4
Bierhumpen String Bedingung. Java Basics - Anfänger-Themen 8
M Comparable - Bedingung erzwingen Java Basics - Anfänger-Themen 3
R Klassen nach Bedingung laden Java Basics - Anfänger-Themen 22
G Compiler sieht die Bedingung nicht! Java Basics - Anfänger-Themen 5
W if Bedingung mit "Außer" Java Basics - Anfänger-Themen 4
R Best Practice Problem mit (einfacher) Doppelt-Schleife Java Basics - Anfänger-Themen 53
C Abbruch einer Schleife mit break, meine Übung funktioniert nicht richtig Java Basics - Anfänger-Themen 4
C Erste Schritte While-Schleife Java Basics - Anfänger-Themen 3
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
DrahtEck Schleife soll wieder da anfangen wo ich es möchte ! Java Basics - Anfänger-Themen 17
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
MaZ Quadrat Schleife(Pyramide) Java Basics - Anfänger-Themen 9
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Wie kann diese Schleife beenden Java Basics - Anfänger-Themen 1
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
T Variable in Schleife deklarieren, Speicherplatz, Garbage Collector Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben