답변:
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)
그러나 Jon이 말했듯이 replace(). 그것은에서 벗어나 있다는 사실에도 불구하고 replaceAll이름, 그것은 대체하지 않습니다 모든 단지 등의 발생을 replaceAll().
Pattern.compile()문자열을 정규식으로 컴파일합니다. 즉, 특수 문자에 특별한 의미가 부여됩니다. 이것은 Pattern.quote()무엇을 하는가와 OP가 요구하는 것과는 완전히 반대입니다 ( quote()"문자열을 리터럴로 취급"). 당신이 말하는 "바람직하지 않은 결과"에 대해 확장 할 수있을 것입니다.
Matcher.quoteReplacement("$aa +"). Pattern.compile()을 생성 Pattern하지 않고을 생성 String하므로에서 사용하는 방법이 명확하지 않습니다 replaceAll.