JDK 1.4.2
OS RH Linux
で、正規表現を試しています。
文字列の置換がしたくてreplaceAllを試してみたんですが、ユニコードエスケープした
置換がうまく動いてくれません。
コンパイルは出来るんですが、実行するとエラーです。
public class RegTest {
    public static void main(String[] args) {
        String str = "String Text Hoge Fuga Hage";
        String str2 = "\u0024";
        System.out.println("str.replace[" + str.replaceAll("Hoge", "\u0024") + "]");
        //System.out.println("str.replace[" + str.replaceAll("Hoge", "HOGE") + "]");
        System.out.println("str2[" + str2 + "]");
    }
}
こういうソースで試したら、次のような例外が発生してしまいます。

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
        at java.lang.String.charAt(String.java:444)
        at java.util.regex.Matcher.appendReplacement(Matcher.java:559)
        at java.util.regex.Matcher.replaceAll(Matcher.java:661)
        at java.lang.String.replaceAll(String.java:1663)
        at RegTest.main(RegTest.java:5)
#他にも、IllegalArgumentExceptionが発生した事もあります。
#引数のregexは特殊リテラルを含まないただの文字列、replacementは
#ユニコードエスケープした文字列です