12

我有以下字符串

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

两者都不起作用。

4

6 回答 6

19

改为使用String.replaceAll

str1=str.replaceAll("[\r\n]+", " ");
于 2012-06-27T07:44:09.503 回答
8

没有正则表达式和操作系统独立:

str1.replaceAll(System.lineSeparator(), " ");

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

于 2018-03-14T07:50:05.093 回答
6

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

于 2012-06-27T07:44:00.140 回答
3

你为什么不使用str.replaceAll("\r\n", " ")

应该工作并替换所有发生的事情。

于 2012-06-27T07:44:19.757 回答
1

使用 Java 11 行()

Java 11 添加了新方法String::lineslines方法使用专门Spliterator用于从源字符串中延迟提供行

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

注意该字符串使用 Windows' \r\n,即使我在 Linux 上,lines() 仍然会拆分它。这是因为无论操作系统如何,该方法都将 \r、\n 和 \r\n 视为行终止符并在那里拆分——即使它们混合在同一个字符串中。

于 2019-01-02T06:04:47.260 回答
-1
str1=str.replaceAll("[\r\n]+", " ");
于 2019-01-02T06:15:08.443 回答