String-Operation replace() - Zeichenkette verdoppeln

Hag2bard

Bekanntes Mitglied
Hallo,

ich möchte mit Hilfe der replace() Methode in einem String das Zeichen "?" durch "??" ersetzen. Also so, dass wenn ein Fragezeichen existiert es zu einem doppelten Fragezeichen wird.
Nun habe ich das Problem, dass wenn der String bereits 2 Fragezeichen enthält, werden beide mit doppelten Fragezeichen ersetzt.

Ich habe überlegt das so hier zu machen:
Java:
            String street = participant.getStreet();
            if(!street.contains("??"))
            {
               street.replace("?", "??");
               participant.setStreet(street);
            }

Gibt es da auch eine bessere Lösung?
 
Ein Regulaerer Ausdruck zusammen mit String.replaceAll sollte eine einfache Moeglichkeit sein. Sowas wie \\?([^?]) (Fragezeichen gefolgt von nicht Fragezeichen) sollte als Ausdruck funktionieren, denke ich.

Alternativ kannst du den String auch haendisch neu zusammenbauen in dem du dich mit String.indexOf(String, int) von Fragezeichen zu Fragezeichen hangelst und dort pruefst ob du es ersetzen musst oder nicht.

Und nur um sicherzugehen, meine Wiederholung zum Thema Strings.
 
Wenn doppelte Fragezeichen durch zwei Fragezeichen ersetzt werden sollen (und dreifache dann wohl auch durch doppelte usw.)
dann evtl. als regex \\?+
 

Zurück
Oben