使用行分隔符获取额外的行

Getting extra line using row seperator

我正在使用此正则表达式按 2 个字符将一行分成多个组。

string.replaceAll("(.{2})", "\r\n")

这是一个例子。

像我输入的输入字符串是这样的

ABCDEFGHIJ

输出变成这样

Output
->AB
->CD
->EF
->GH
->IJ
->

有什么方法可以让我不收到最后的空行吗?

您有两个选择:

  • 从结果中手动删除新行
  • 将您的正则表达式更改为:(.{2})(?!$)

现在正则表达式将捕获除最后一对之外的所有对,并且您不会用新行替换它。

其他方法可能是:

String.join(System.lineSeparator(), string.split("(?<=\G..)"))

使用 string.split("(?<=\G..)") 时,您将在每两个字符后拆分一次,但由于 split 默认情况下会删除尾随的空字符串,因此您不会在结果中得到它。所以 "ABCD" 变成 ["AB", "CD"] 数组。

然后使用 String.join(delimiter, elements) 您可以将数组中的元素连接成一个字符串,它们之间有指定的分隔符,在我们的例子中是 OS 行分隔符。

DEMO