在Java中替换字符

在Java中替换字符,java,character-encoding,replace,Java,Character Encoding,Replace,我试图替换字符串中的字符,这些字符有时有效,但大部分时间不起作用 我尝试了以下方法: 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.prin

我试图替换字符串中的字符,这些字符有时有效,但大部分时间不起作用

我尝试了以下方法:

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]
”,而没有替换“[”和“]”


我应该如何替换那些“[”和“]”字符?

String.replace不能这样工作。您必须使用类似于
t=t.replace(“t”和“)
String.replace不能这样工作。您必须使用类似于
t=t.replace(“t”)的东西
String
java中的对象是不可变的。你不能改变它们

你需要:

t2 = t2.replace("\\]", "");
replace()
返回一个新的
String
对象

编辑:因为。。。我要离开这群人了

既然是这种情况,参数实际上是一个正则表达式,并且您想去掉两个括号,可以使用
replaceAll()
而不是两个操作:

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

这将一次性消除开头和结尾括号。

String
java中的对象是不可变的。你不能改变它们

你需要:

t2 = t2.replace("\\]", "");
replace()
返回一个新的
String
对象

编辑:因为。。。我要离开这群人了

既然是这种情况,参数实际上是一个正则表达式,并且您想去掉两个括号,可以使用
replaceAll()
而不是两个操作:

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

这将一次性消除开头和结尾括号。

字符串是不可变的,因此

t.replace(....);
无所事事

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

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

字符串是不可变的,所以

t.replace(....);
无所事事

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

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

String
s在Java中是不可变的,这意味着您不能更改它们。相反,请执行
t1=t1.replace(“]”,“”)。这将把
replace
的结果分配给t1。

字符串在Java中是不可变的,这意味着您不能更改它们。相反,请执行
t1=t1.replace(“]”,“”)。这将把
replace
的结果分配给t1。

String.replace()在替换所需字符后返回一个新字符串。因此,您需要这样做:

String t = "[javatag]";
t = t.replace("[","");
t = t.replace("]","");
String.replace()在替换所需字符后返回一个新字符串。因此,您需要这样做:

String t = "[javatag]";
t = t.replace("[","");
t = t.replace("]","");
给您一个字符串(返回字符串)

可以将原始变量名称重新指定给新字符串

然后旧字符串将被垃圾回收 :)

给您一个字符串(返回字符串)

可以将原始变量名称重新指定给新字符串

然后旧字符串将被垃圾回收
:)

+1你给了他
t
,我给了
t1
和布赖恩
t2
。我想他都准备好了:)好笑,都在4秒钟之内,我无法决定这是否有趣。。。或者悲伤-我看到了你的
replace()
,我给了你一个
replaceAll()
也没有让阿尔·戈尔感觉好一点。+1你给了他
t
,我给了
t1
和布赖恩
t2
。我想他都准备好了:)好笑,都在4秒钟之内,我无法决定这是否有趣。。。或者悲伤-我看到了你的
replace()
,我给你提了一个
replaceAll()
也没有让阿尔·戈尔感觉好一点。我明白了。我只是忘了避开那些特殊的角色。谢谢。我刚刚检查了代码,发现它在不转义字符串的情况下工作。实际上-你是对的,因为我认为它正在调用
replace(char,char)
。我忘了超负荷了,我明白了。我只是忘了避开那些特殊的角色。谢谢。我刚刚检查了代码,发现它在不转义字符串的情况下工作。实际上-你是对的,因为我认为它正在调用
replace(char,char)
。我忘了有超载。