我有以下字符串
String str="select * from m_menus;
select * from m_roles";
我想在一行上面的字符串 像
String str="select * from m_menus;select * from m_roles";
我试过了
str1=str.replace("[\r\n]+", " ");
以及
str1=str.replace("\n"," ");
两者都不起作用。
答案 0 :(得分:17)
改为使用String.replaceAll
。
str1=str.replaceAll("[\r\n]+", " ");
答案 1 :(得分:6)
如果要使用正则表达式,则应使用String.replaceAll()
方法。
答案 2 :(得分:4)
没有正则表达式和操作系统独立:
str1.replaceAll(System.lineSeparator(), " ");
Windows使用\ r \ n作为换行符,而* nix系统仅使用\ n。
答案 3 :(得分:3)
为什么不使用str.replaceAll("\r\n", " ")
?
应该工作并替换所有事件。
答案 4 :(得分:0)
使用Java 11行()
Java 11添加了新方法String::lines
,lines
方法使用专门的Spliterator
来懒惰地提供源字符串中的行
yourMultilineString.lines().collect(Collectors.joining(";"));
注意:该字符串使用Windows的\r\n
,即使我在Linux上,lines()仍会对其进行分割。这是因为无论使用什么操作系统,该方法都将\ r,\ n和\ r \ n视为行终止符并在行中终止-即使它们混在同一字符串中。
答案 5 :(得分:-1)
willbeDeletecode