我想替换包含换行符的字符串,并将其替换为“。”。但是,为了替换它,我的方法是检查它有多少个断线,然后执行替换。这将使其添加过多的“。”。例子
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', '.');
我当前的方式是如果我继续添加太多替代品,那么它将是:(是否有更聪明的方式呢?)
我有个好东西...........在那里
我的预期输出:
我有好东西。在那里
答案 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
将转义所有可插入空格的结束行。
此外,它可以消除在最后一个字符和之间的空间“”这是操作规则。