Wildcards ... wie?

Hallo, ich komme bei einem Programm nicht weiter. Ich habe eine ArrayList mit mehreren Strings. Aus der Liste hole ich via arrayliste.contains(„Mein String“) ein, ob das Element vorhanden ist. Wenn aber der String plötzlich nicht mehr „Mein String“ heißt, sondern „Mein String 2“, dann kann findet mein Programm die Zeile nicht mehr. Ich möchte nun also sagen können…

// wenn sich noch etwas hinter „Mein String“ befindet…
if(arrayliste.contains(„Mein String*“))
System.out.Printline(„Es wurde noch ein Anhängsel an den String gefunden“);

Ich habe bisher leider noch keine Methode gesehen, mit der man Wildcards verwenden könnte. Aber es gibt doch bestimmt noch einen anderen Weg, oder?

// wenn sich noch etwas hinter „Mein String“ befindet…
if(arrayliste.contains(„Mein String*“))
System.out.Printline(„Es wurde noch ein Anhängsel an den
String gefunden“);

Nein, so etwas ist nicht möglich. Wenn du die contains- Methode aufrufst, werden im Prinzip nur alle Einträge mit „Mein String“.equals(entry[x]) verglichen. Wenn du das jetzt bräuchen würdest gibt es nur die Möglichkeit eine eigene Funktion zu schreiben die mittels String paddern alle Einträge durchgeht.

LG

Hallo.

Wie bereits beschrieben musst du jeden Eintrag in deiner Liste überprüfen, am besten in einer Schleife. Damit du die Strings noch erkennst, könntest du reguläre Ausdrücke verwenden. Die Stringklasse hat dafür die Methode matches(String), der man solch einen Ausdruck übergeben kann.
Das dürfte dann so ähnlich aussehen. Allerdings bin ich mir mit dem Ausdruck nicht sicher…

for(String entry : arrayliste) {
 if(entry.matches("^Mein String.\*")) {
 System.out.Printline("Es wurde noch ein Anhängsel an den String gefunden");
 }
}

Gruß,
Chris

Hallo.

Damit du die Strings noch erkennst, könntest du reguläre Ausdrücke verwenden.
Allerdings bin ich mir mit dem Ausdruck nicht sicher…

if(entry.matches("^Mein String.*")) {
System.out.printline(„Es wurde noch ein Anhängsel an
den String gefunden“);
}

^Mein String.\*

ist leider daneben, da der * für
0 oder mehr Treffer steht, Du willst eigentlich + für
mindestens ein oder mehr Zeichen. Deshalb:

^Mein String.+

Gruß,
-Andreas.