如何用定界符值替换字符串中的空格和\ r?

String oldDelimiter = " ";
String newDelimiter = "o";
String fileContent = "try some **random**  %!(chars)!% ##\r" +
            "or line break$@ \r" +
            ":(";
fileContent = fileContent.replaceAll("[" + oldDelimiter + "]+", newDelimiter);
fileContent = fileContent.replaceAll("\r", newDelimiter);


当前输出:tryosomeo**random**o%!(chars)!%o##oorolineobreak$@oo:(

所需的输出:tryosomeo**random**o%!(chars)!%o##oorolineobreak$@o:(

请注意,在o符号后面的字符串末尾有多余的字母@

更新:仅当存在space\r时,才应替换为o。但是,如果space\r彼此相邻,则只能替换为一个o分隔符。

最佳答案

就像安德烈亚斯(Andreas)所说的那样,使用“ [\ r]”将所有的\ r和“”替换为空格。

fileContent = fileContent.replaceAll("[ \r]+", "o");

09-04 07:46