检查断裂线的数量,有时检查断裂线的数量,并用句号代替

时间:2019-01-31 08:26:09

标签: java

我想替换包含换行符的字符串,并将其替换为“。”。但是,为了替换它,我的方法是检查它有多少个断线,然后执行替换。这将使其添加过多的“。”。例子

st = "I have something nice \n\n\n\n\n\n\n\n there"

    String st = st.replace('\r', ' ').replace('\n\n\n', '.').replace('\n', '.').replace('\n\n', '.').replace('\n\n\n\n', '.');

我当前的方式是如果我继续添加太多替代品,那么它将是:(是否有更聪明的方式呢?)

我有个好东西...........在那里

我的预期输出:

我有好东西。在那里

3 个答案:

答案 0 :(得分:3)

您可以使用一个简单的正则表达式一次替换所有出现的内容:

String st = "I have something nice \n\n\n\n\n\n\n\n there";
String replaceAll = st.replaceAll("\n+", ".");

输出:

I have something nice . there

答案 1 :(得分:1)

在正则表达式中使用String.replaceAll

String st = "I have something nice \n\n\n\n\n\n\n\n there";

st = st.replaceAll("\n+", "."); // \n+ matches one or mutiple line breaks
System.out.println(st);//I have something nice . there

答案 2 :(得分:1)

这将帮助您:

st.replaceAll("(?:\\s*\n)+", ".");

\\s*\n将转义所有可插入空格的结束行。

此外,它可以消除在最后一个字符和之间的空间“”这是操作规则。