回答:
だけではString.replace(CharSequence,CharSequence)なく使用してくださいreplaceAll。
System.out.println("hello world, hello life, hello you".replace("hello","hi"));を返します"hi world, hi life, hi you"。
エスケープを追加する方法はPattern.quote()です。
String replaced = myString.replaceAll(Pattern.quote(matchingStr), replacementStr)
しかし、ジョンが言うように、あなたはただ使うことができますreplace()。replaceAll名前から外れているという事実にもかかわらず、それはのようにすべての出現を置き換えますreplaceAll()。
Pattern.compile()文字列を正規表現としてコンパイルします。つまり、特殊文字には特別な意味が与えられます。それは何Pattern.quote()をするか、OPが求めていたものとは正反対です(quote()「文字列をリテラルとして扱う」と言います)。たぶん、あなたはあなたが話している「望ましくない結果」を拡大することができるでしょう。
Matcher.quoteReplacement("$aa +")。 ではなくをPattern.compile()生成するPatternので、Stringでどのように使用しているかは不明ですreplaceAll。