String的替换all正在替换none

Kev*_*vin 0 java string replaceall

我有以下代码:

System.out.println("Trace: #" +"2");
System.out.println(rv); 
        rv.replaceAll("$t",sTAB);
System.out.println("Trace: #" +"3");
System.out.println(rv); 
Run Code Online (Sandbox Code Playgroud)

rv和sTAB是String类型.并且sTAB具有制表符的值.输出如下:

Trace: #2
is$thi$t
Trace: #3
is$thi$t
Run Code Online (Sandbox Code Playgroud)

但我希望:

Trace: #2
is$thi$t
Trace: #3
is{tab}hi{tab}    
Run Code Online (Sandbox Code Playgroud)

当然,{tab}是实际的制表符.你能解释我的代码有什么问题吗?

Rob*_*ska 6

replaceAll()采用正则表达式返回替换的String.

$是一个正则表达式元字符,匹配行的结尾.

尝试使用:

rv = rv.replaceAll("\\$t", sTAB);
Run Code Online (Sandbox Code Playgroud)