【发布时间】:2019-09-18 03:20:33
【问题描述】:
我的目标是将所有“/”和“\”替换为一个“\”。
输入:
String path = "H\\\\\\\\\\ello///Wo\\rld\\!////";
输出:
String path = "H\ello\Wo\rld\!\";
问题:
有没有办法在一行中完成所有这些操作?
我的解决方案(有效!):
- 全部改成同一个字符
- 用一个斜杠替换所有“/”
- 恢复正常
我了解到我需要正则表达式,并且“[X]+”将放置所有可能的组合,例如。 “XXfXfXXXX”到“XfXfX”。
我正在寻找类似的东西:(伪代码)
path = path.replaceAll("[\\/]+", "\\");
我尝试了一些组合,但每次都会抛出错误。
我的解决方案:
path = path.replace("\\", "/");
path = path.replaceAll("[/]+", "/");
pfad = pfad.replace("/", "\\");
【问题讨论】:
-
恐怕你得逐个遍历这里的字符
-
为什么要把
\换成\?它不会改变任何东西。您是否想用单个\替换\和/的系列? -
是的,这就是我的目标@Pshemo
-
如果 1 个或多个
\和/字符的所有块都应替换为一个\,请尝试.replaceAll("[\\\\/]+", "\\\\")。 -
替换
\\\\//的结果是什么?应该是一个\还是两个\\(一个用于\\\\序列,第二个用于//序列)?
标签: java regex string replace replaceall