字符串替换反斜杠

2022-09-01 01:48:27

如何对反斜杠进行字符串替换。

输入源字符串:

sSource = "http://www.example.com\/value";

在上面的字符串中,我想用“/”替换“\/”;

替换后的预期输出:

sSource = "http://www.example.com/value";

我从第三方获取源字符串,因此我可以控制字符串的格式。

这就是我尝试过的

试验 1:

sSource.replaceAll("\\", "/");

异常 索引 1 附近的意外内部错误 \

试验 2:

 sSource.replaceAll("\\/", "/");

无异常,但不执行所需的替换。不执行任何操作。

试验 3:

 sVideoURL.replace("\\", "/"); 

无异常,但不执行所需的替换。不执行任何操作。


答案 1
sSource = sSource.replace("\\/", "/");
  • String是不可变的 - 您在其上调用的每个方法都不会更改其状态。它返回一个保存新状态的新实例。因此,您必须将新值分配给变量(它可以是相同的变量)
  • replaceAll(..)使用正则表达式。你不需要这个。

答案 2

尝试 或 。replaceAll("\\\\", "")replaceAll("\\\\/", "/")

这里的问题是,反斜杠是(1)Java字符串文本中的转义字符,以及(2)正则表达式中的转义字符 - 每种使用都需要使字符加倍,实际上需要行4。\

当然,正如Bozho所说,你需要对结果做点什么(将其分配给某个变量),而不是把它扔掉。在这种情况下,非正则表达式变体更好。