tho*_*olh 1 java replace character-encoding
我试图替换String中的字符,它有时会起作用,而且大多数时候都不起作用.
我尝试了以下方法:
String t = "[javatag]";
String t1 = t;
String t2 = t;
t.replace("\u005B", "");
t.replace("\u005D", "");
t1.replace("[", "");
t1.replace("]", "");
t2.replace("\\]", "");
t2.replace("\\[", "");
System.out.println(t+" , "+t1+" , "+t2);
Run Code Online (Sandbox Code Playgroud)
结果输出仍然是" [javatag] , [javatag] , [javatag]"而没有"["和"]"被替换.
我应该怎么做才能取代那些"["和"]"字符?
Stringjava中的对象是不可变的.你无法改变它们.
你需要:
t2 = t2.replace("\\]", "");
Run Code Online (Sandbox Code Playgroud)
replace()返回一个新String对象.
编辑:因为......我正在脱离背包
既然是这种情况,那么论证实际上是一个正则表达式,并且你想要摆脱两个括号,你可以使用replaceAll() 而不是两个操作:
t2 = t2.replaceAll("[\\[\\]]", "");
Run Code Online (Sandbox Code Playgroud)
这将一举摆脱开口和关闭支架.
字符串是不可变的
t.replace(....);
Run Code Online (Sandbox Code Playgroud)
什么也没做
你需要将输出分配给某个变量,比如
t = t.replace(....);
Run Code Online (Sandbox Code Playgroud)