替换Java中的字符

时间:2011-04-26 05:00:00

标签: java character-encoding replace

我试图替换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]”而没有“[”和“]”被替换。

如何更换“[”和“]”字符?

6 个答案:

答案 0 :(得分:7)

java中的

String个对象是不可变的。你无法改变它们。

你需要:

t2 = t2.replace("\\]", "");

replace()会返回一个新的String对象。

编辑:因为......我正在脱离背包

既然是这种情况,那么论证实际上是一个正则表达式,并且你想要摆脱两个括号,你可以使用replaceAll()而不是两个操作:

t2 = t2.replaceAll("[\\[\\]]", "");

这将一举摆脱开口和结束括号。

答案 1 :(得分:6)

字符串是不可变的,所以

t.replace(....);

什么都不做

您需要将输出分配给某个变量,例如

t = t.replace(....);

答案 2 :(得分:4)

Java中的

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(返回一个字符串)

您可以将原始变量名重新分配给新字符串

以后旧的字符串将被垃圾收集 :)