我试图替换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);
结果输出仍然是“[javatag] , [javatag] , [javatag]
”而没有“[”和“]”被替换。
如何更换“[”和“]”字符?
答案 0 :(得分:7)
String
个对象是不可变的。你无法改变它们。
你需要:
t2 = t2.replace("\\]", "");
replace()
会返回一个新的String
对象。
编辑:因为......我正在脱离背包
既然是这种情况,那么论证实际上是一个正则表达式,并且你想要摆脱两个括号,你可以使用replaceAll()
而不是两个操作:
t2 = t2.replaceAll("[\\[\\]]", "");
这将一举摆脱开口和结束括号。
答案 1 :(得分:6)
字符串是不可变的,所以
t.replace(....);
什么都不做
您需要将输出分配给某个变量,例如
t = t.replace(....);
答案 2 :(得分:4)
String
是不可变的,这意味着你无法改变它们。相反,请t1 = t1.replace("]", "");
。这会将replace
的结果分配给t1。
答案 3 :(得分:2)
String.replace无法正常工作。你必须使用像t = t.replace("t", "")
答案 4 :(得分:1)
String.replace()在替换所需字符后返回一个新字符串。因此,你需要这样做:
String t = "[javatag]";
t = t.replace("[","");
t = t.replace("]","");
答案 5 :(得分:0)
t.replace(....);
给你一个String(返回一个字符串)
您可以将原始变量名重新分配给新字符串
以后旧的字符串将被垃圾收集 :)