拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何用换行符分割Java字符串

如何用换行符分割Java字符串

白鹭 - 2021-11-22 2177 0 2

1.概述

在本教程中,我们将研究通过换行符分割Java字符串的不同方法。由于换行符在各种操作系统中都不同,因此我们将研究覆盖Unix,Linux,Mac OS 9和更早版本,macOS和Windows OS的方法。

2.用换行符String

2.1 System#lineSeparator方法按换行符拆分String

鉴于换行符在不同的操作系统中是不同的,当我们希望代码独立于平台时,可以使用系统定义的常量或方法。


System#lineSeparator方法返回基础操作系统的行分隔符字符串。它返回系统属性line.separator的值。


System#lineSeparator方法返回的行分隔符字符串String#split方法一起使用,以换行符分隔String

String[] lines = "Line1\r\nLine2\r\nLine3".split(System.lineSeparator());

结果行将是:

["Line1", "Line2", "Line3"]

2.2 使用正则表达式按换行符拆分String

接下来,让我们开始研究用于在不同操作系统中分隔行的不同字符。


“ \n ”字符分隔Unix,Linux和macOS中的行。另一方面,“ \r\n ”字符在Windows环境中分隔行。最后,“ \r ”字符在Mac OS 9及更早版本中分隔行。


因此,在使用正则表达式将字符串分隔为换行符时,我们需要照顾所有可能的换行符。


最后,让我们看一下将覆盖所有不同操作系统的换行符的正则表达式模式。也就是说,我们需要寻找“ \ n”,“ \ r \ n”和“ \ r”模式。通过使用Java中的正则表达式可以很容易地做到这一点。


涵盖所有不同换行符的正则表达式模式将是

"\\r?\\n|\\r"

分解来看,我们看到:

  • \\n = Unix,Linux和macOS模式

  • \\r\\n = Windows环境模式

  • \\r = MacOS 9和更早的模式

接下来,让我们使用String # split方法拆分Java String 。让我们看几个例子:

String[] lines = "Line1\nLine2\nLine3".split("\\r?\\n|\\r");

 String[] lines = "Line1\rLine2\rLine3".split("\\r?\\n|\\r");

 String[] lines = "Line1\r\nLine2\r\nLine3".split("\\r?\\n|\\r");

所有示例的结果行将是:

["Line1", "Line2", "Line3"]

2.3 在Java 8中按换行符拆分String

Java 8提供了一个“\R”模式,该模式与任何Unicode换行符序列匹配,并涵盖了不同操作系统的所有换行符。因此,在Java 8或更高版本中,我们可以使用“\R”模式代替“\\r?\\n|\\r”

让我们看几个例子:

String[] lines = "Line1\nLine2\nLine3".split("\\R");

 String[] lines = "Line1\rLine2\rLine3".split("\\R");

 String[] lines = "Line1\r\nLine2\r\nLine3".split("\\R");

同样,所有示例的最终输出行将是:

["Line1", "Line2", "Line3"]

3.结论

在这篇快速的文章中,我们研究了在不同的操作系统中可能遇到的不同的换行符。此外,我们看到了如何使用我们自己的正则表达式模式以及从Java 8开始可用“\R”


标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *