【发布时间】:2020-07-19 05:53:44
【问题描述】:
如何在java中用单个字符替换连续字符?
String fileContent = "def mnop.UVW";
String oldDelimiters = " .";
String newDelimiter = "!";
for (int i = 0; i < oldDelimiters.length(); i++){
Character character = oldDelimiters.charAt(i);
fileContent = fileContent.replace(String.valueOf(character), newDelimiter);
}
当前输出:def!!mnop!UVW
所需输出:def!mnop!UVW
请注意,这两个空格被替换为两个感叹号。如何用一个分隔符替换连续的分隔符?
【问题讨论】:
-
oldDelimiters有两个字符。 -
@SudhirOjha 没错。这就是我遍历 oldDelimiters 的原因。
-
尝试使用一对多量化字符类的正则表达式;例如:
String result = text.replaceAll("[ .]+", "!");. -
@ChrisSmith 取决于您的
oldDelimiter字符串;如果它包含一个字符(或几个单个字符),则使用"[" + oldDelimiter + "]+"之类的东西作为表达式部分;如果是单个字符串,请使用"(?:" + oldDelimiter + ")+"之类的内容。很抱歉进行了修改。 -
@ChrisSmith 我完全赞成用算法解决问题,但在某些情况下,RE 非常方便快速解决问题。
标签: java regex string algorithm