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

时间:2016-11-27 08:58:06

标签: java regex string replaceall

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

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

这是一个例子。

就像我输入的输入字符串一样

ABCDEFGHIJ

输出就像这样

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

有没有办法让我不接受最后一句空行?

2 个答案:

答案 0 :(得分:2)

您有两种选择:

  • 从结果中手动删除新行
  • 将您的正则表达式更改为:fruits.splice(deletedFruit.index, 0, deletedFruit.fruit);

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

答案 1 :(得分:1)

其他方法可能是:

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

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

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

DEMO