如何将多行字符串制作成单行字符串?

时间:2012-06-27 07:39:53

标签: java java-11

我有以下字符串

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"," "); 

两者都不起作用。

6 个答案:

答案 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::lineslines方法使用专门的Spliterator来懒惰地提供源字符串中的行

yourMultilineString.lines().collect(Collectors.joining(";"));

注意:该字符串使用Windows的\r\n,即使我在Linux上,lines()仍会对其进行分割。这是因为无论使用什么操作系统,该方法都将\ r,\ n和\ r \ n视为行终止符并在行中终止-即使它们混在同一字符串中。

答案 5 :(得分:-1)

willbeDeletecode