Wie vergleiche ich Strings in einer Liste?

bob651

Aktives Mitglied
Hi, ich bins wieder.
Folgendes.
Ich habe mir eine Liste erstellt. Dort packe ich dann meine Strings rein.
Ich will jetzt aber die Strings in der Liste vergleichen.
Also es gibt gute und schlechte Strings.
Wenn es mehr gute als schlechte Strings gibt, soll die Konsole ein "GUT" zurückgeben.
Mein Code.
Code:
import java.util.ArrayList;
public class strings {

public static void main(String[] args) {
               
ArrayList<String> Tag = new ArrayList<String>();

Tag.add("Tagesretter");
Tag.add("Tageskiller");
Tag.add("Wochenende");
Tag.add("Montag");
Tag.add("Eis essen");


if(Tag.get(0)== "Tagesretter"){
System.out.println("GUT");
}

if(Tag.get(1)== "Tageskiller"){
System.out.println("SCHLECHT");
}


       
}
}

Ich muss erstmal die Strings einordnen in "gut" und "schlecht" oder "1" und "2".
Das vergleichen habe ich hinbekommen.
Wie mache ich das mit der Mehrzahl? Iwie muss ich sie zählen.
 
Strings werden mit equals verglichen!

Java:
int guteTage = 0, schlechteTage = 0;

if(Tag.get(0).equals("Tagesretter")){
    guteTage++;
}

if(Tag.get(1).equals("Tageskiller")){
    schlechteTage++;
}
 
Themen zum Einlesen: for-Schleife, danach die "bessere"-Variante: ForEach-Schleife.(Falls du zählen möchtest.)

Ansonsten kann man Existenz mit "contains()" auf einer Liste testen.
 
Themen zum Einlesen: for-Schleife, danach die "bessere"-Variante: ForEach-Schleife.(Falls du zählen möchtest.)

Ansonsten kann man Existenz mit "contains()" auf einer Liste testen.
Ja, habe das mit contain probiert, aber da muss ich genau angeben, welche Strings ich vergleichen möchte. Geht das nicht so, dass es alle Strings durchsucht und falls es fündig wird eine Methode ausführt? containsAll vlt?

EDIT: ok, habs hinbekommen. Habe einfach 2 weiter arrays für tagGut und tagschlecht erstellt und jetzt funktioniert auch containsAll. THX!

EDIT2: Falls es einfacher geht, nehme Tipps gerne an 🙂

Code:
import java.util.ArrayList;
public class strings {

public static void main(String[] args) {
int gut =0; int schlecht =0;               
ArrayList<String> Tag = new ArrayList<String>();
ArrayList<String> TagGut = new ArrayList<String>();
ArrayList<String> TagSchlecht = new ArrayList<String>();


TagGut.add("Tagesretter");
TagSchlecht.add("Tageskiller");
Tag.add("Wochenende");
Tag.add("Montag");
Tag.add("Eis essen");
Tag.add("Tagesretter");


//if(Tag.get(0)== "Tagesretter"){
//System.out.println("GUT");
//}
//
//if(Tag.get(1)== "Tageskiller"){
//System.out.println("SCHLECHT");
//}
if (Tag.containsAll(TagGut)){
    System.out.println("GUT");
}




else{
if(gut>schlecht){
    System.out.println("TAG GERETTET");
}
if(gut<schlecht){
    System.out.println("TAG GEKILLT");
}

}   
}
}
 
.contains("Tagesretter") prüft, ob der String "Tagesretter" in der Liste vorhanden ist.
Da du die Anzahl noch wissen möchtest, wenn ich die Integer-Variablen richtig deute, brauchst du aber eher eine For-Schleife.
 

Neue Themen


Zurück
Oben