字符串替换反斜杠

新手上路,请多包涵

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

输入源字符串:

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

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

替换后的预期输出:

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

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

这是我尝试过的

试验一:

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

异常索引 1 附近出现意外内部错误

试验二:

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

No Exception,但不执行所需的替换。什么都不做。

试验 3:

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

No Exception,但不执行所需的替换。什么都不做。

原文由 kensen john 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答
sSource = sSource.replace("\\/", "/");

  • String 是不可变的——你在它上面调用的每个方法都不会改变它的状态。它返回一个持有新状态的新实例。所以你必须将新值分配给一个变量(它可以是同一个变量)
  • replaceAll(..) 使用正则表达式。你不需要那个。

原文由 Bozho 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

当然,正如 Bozho 所说,您需要对结果做一些事情(将其分配给某个变量)而不是将其丢弃。在这种情况下,非正则表达式变体更好。

原文由 Paŭlo Ebermann 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题