在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)
。我忘了有超载。