DerKoenig Geschrieben 3. Februar 2009 Geschrieben 3. Februar 2009 Moin Moin, möchte einen kompletten String escapen, also ich möchte die replaceALL funktion benutzen und zB kekse+frankund durch klausund (also nur das kekse+frank) ersetzen das problem ist, java sieht das + als steuerzeichen an... er können sich alelrdings auch mehrere steuerzeichen im string befinden gibt es möglichkeiten den ganzen string zu escapen ?
Wayne Geschrieben 3. Februar 2009 Geschrieben 3. Februar 2009 Nicht "Java selbst" sieht das + als Steuerzeichen an, sondern die Implentierung von regulären Ausdrücken in Java tut dies, welche eben in ReplaceAll, split und noch so einige andere Methoden benutzt werden. Schaue dazu am besten mal in die Java Doku: Pattern. Ich hab allerdings noch nicht ganz genau verstanden was du wirklich möchtest. Vielleicht kannst du ein etwas anschaulicheres/ausführlicheres Beispiel wählen.
DerKoenig Geschrieben 4. Februar 2009 Autor Geschrieben 4. Februar 2009 Ok Also nochmal: ich benutze die replaceALL funktion einfacher String: ich habe einen String z.B. 7+7+8+9 nun möchte ich 7+7 ersetzen oder ausschneiden oder wie auch immer im beispiel nehmen wir mal replaceALL also möchte ich mit hilfe von replaceALL den String 7+7 ersetzen durch z.B.111 jetzt hätte ich nach dem replace, wenn es funktionieren würde 111+8+9 allerdings muss das + escaped werden das meinte ich mit kompletten string escapen, so, dass alle + schon escaped sind
DerKoenig Geschrieben 4. Februar 2009 Autor Geschrieben 4. Februar 2009 so KWASI String sDaten="7+7+5+5"; String sZuErsetzen="7+7"; sDaten = sDaten.replaceALL(sZuErsetzen, "111"); so beide Variablen können Variieren, so dass ich nicht von vorneherein sZuErsetzen = "7\\+7" sagen könnte... hoffe nun ist es verständlicher
Wayne Geschrieben 4. Februar 2009 Geschrieben 4. Februar 2009 Da es sich hier, wie bereits gesagt, um reguläre Ausdrücke handelt und, wie du richtig erkannt hast, du entsprechende Sonderzeichen escapen musst, fällt mir persönlich jetzt kein besserer Weg ein als: private String replaceThis(String source, String expr, String rplmnt){ expr.replaceAll("\\+", "\\+"); source.replaceAll(expr, rplmnt); return source; } Ich habs jetzt nicht getestet aber ich denke du verstehst was ich meine. Zugegeben es ist etwas unglücklich aber so spontan wüsste ich keine bessere Lösung. Hast du mal geschaut was Google dazu sagt?
Dragon8 Geschrieben 4. Februar 2009 Geschrieben 4. Februar 2009 expr.replaceAll("\\+", "\\\\+"); auch wenns doof aussieht, so müsste es sein
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden