替换Java中的字符

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]"而没有"["和"]"被替换.

我应该怎么做才能取代那些"["和"]"字符?

Bri*_*ach 7

Stringjava中的对象是不可变的.你无法改变它们.

你需要:

t2 = t2.replace("\\]", "");
Run Code Online (Sandbox Code Playgroud)

replace()返回一个新String对象.

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

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

t2 = t2.replaceAll("[\\[\\]]", "");
Run Code Online (Sandbox Code Playgroud)

这将一举摆脱开口和关闭支架.


MeB*_*Guy 6

字符串是不可变的

t.replace(....);
Run Code Online (Sandbox Code Playgroud)

什么也没做

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

t = t.replace(....);
Run Code Online (Sandbox Code Playgroud)

  • +1你给了他't`,我给了't1`和Brian`t2`.我认为他已经全部设定:) (3认同)
  • 我无法判断它是否有趣......或者悲伤.:-D (3认同)
  • 热闹,所有人都在4秒内 (2认同)
  • 我看到你的`replace()`然后我给你一个`replaceAll()` (2认同)