String replace

KINK_LEO

Mitglied
Hallo,

Ich möchte gerne in einem String verschiedene Teilstrings ersetzten.
In einer Fehlermeldung kommt z.B. ein Schlüsselwort vor das ich durch ein anderes Wort ersetzten möchte.
Eigentlich simpel ....
Das Problem ist

String test = "Hallo Test";

test = test.replaceAll("Test","$$$Test");

Exception in thread "Thread-19" java.lang.IllegalArgumentException: Illegal group reference
at java.util.regex.Matcher.appendReplacement(Unknown Source)
at java.util.regex.Matcher.replaceAll(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)

Naja und irgendwie komm ich net weiter ...

Das blöde ist natürlich das die meisten Platzhalter mit wörter ersetzt werden die Doller zeichen beinnhalten.
 
Schau mal hier:
http://www.oreilly.com/pub/h/1515
Dort steht:
"Note that backslashes (\) and dollar signs ($) in the replacement string may cause the results to be different than if it were being treated as a literal replacement string. Dollar signs may be treated as references to captured subsequences as described above, and backslashes are used to escape literal characters in the replacement string."
 
Moin!
Das $ Zeichen ist ein reserviertes Zeichen bei einem Regex..
Du müsstest das schon so machen:
Code:
test = test.replaceAll("Test","\\$\\$\\$Test");

*grüssle*
MeinerEiner
 
String test = "Hallo Test";

test = test.replaceAll("Test", "\\$\\$\\$test");

$ ist eines der Zeichen, die du escapen musst

//edit: zu spät-.-^^
 
Zuletzt bearbeitet von einem Moderator:
Danke an alle :)

Das Problem ist das ich den String mit dem ich die PLatzhalter ersetzte aus einer Datei einlese aber ich habe eine andere Lösung gefunden und zwar benutzte ich anstatt des replaceAll nur das replace ...
 
Zurück