Java: Prüfen ob Zeichen vorhanden (Bedingt)?
Hallo, ich möchte prüfen ob in einem String ein Zeichen vorkommt (Wie oft es egal es muss mindestens 1mal da sein) und das Ergebniss mus in einer Boolean Variable gespeichert werden. Aber der Boolean soll nur true werden, wenn das Zeichen sich nicht zwischen Anführungsstrichen befindet. Beispiel:
1:
//Hier ist dieses Zeichen beispielsweise ein Gleichzeichen
String abc="test = 354";
//Hier müste der Boolean den Wert true bekommen.
2:
String abc="\"=\" Irgendein Text";
//Hier müste der Boolean den Wert false bekommen weil das Gleichzeichen zwischen Gleichzeichen ist
Wie kann ich das machen?
LG
2 Antworten
Du kannst deine Zeichenkette anhand von Anführungszeichen auftrennen und dann von jedem Element an einem geraden Index des Ergebnisarrays (inklusive 0) den Wert prüfen. Bei einem Ergebnisarray mit einer geraden Länge muss auch das letzte Element mit berücksichtigt werden (da das bedeutet, dass das letzte Anführungszeichen keinen Partner hatte).
Für die einzelnen Prüfungen kannst du die contains-Methode der String-Klasse verwenden. Zum Auftrennen des Strings wäre die split-Methode angebracht. Übergib ihr als zweites Argument den Wert -1, um zu verhindern, dass leere Zeichenfolgen aus dem Array herausgehalten werden.
Ein bisschen unübersichtlich, aber du kannst es per RegEx prüfen:
abc.matches("([^=\"]*+\"[^\"]*+\")*[^=\"]*+=.*+")