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 ? Zitieren
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. Zitieren
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 Zitieren
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 Zitieren
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? Zitieren
Dragon8 Geschrieben 4. Februar 2009 Geschrieben 4. Februar 2009 expr.replaceAll("\\+", "\\\\+"); auch wenns doof aussieht, so müsste es sein Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.