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

hap*_*ppy 10 java java-11

我有下面的字符串

String str="select * from m_menus;

select * from m_roles";
Run Code Online (Sandbox Code Playgroud)

我希望上面的字符串在一行中像

String str="select * from m_menus;select * from m_roles";
Run Code Online (Sandbox Code Playgroud)

我试过了

str1=str.replace("[\r\n]+", " "); 
Run Code Online (Sandbox Code Playgroud)

并且

str1=str.replace("\n"," "); 
Run Code Online (Sandbox Code Playgroud)

两者都不起作用.

Mat*_*ens 17

String.replaceAll改用.

str1=str.replaceAll("[\r\n]+", " ");
Run Code Online (Sandbox Code Playgroud)


TZH*_*ZHX 6

如果要使用正则表达式,则应使用该String.replaceAll()方法.

  • 不是吗?他正在使用看起来像正则表达式的方法,而这种方法没有声称能理解这一点. (2认同)

小智 6

没有正则表达式和操作系统无关:

str1.replaceAll(System.lineSeparator(), " ");
Run Code Online (Sandbox Code Playgroud)

Windows 使用 \r\n 作为换行符,而 *nix 系统仅使用 \n。