我正在尝试将字符串分解为由文本行组成的数组列表。每 90 个字符或遇到换行符 (\r) 时创建一行。
我使用它来将字符串分成每 90 个字符的数组(代码中的 partionSize):
private static List<String> getParts(String string, int partitionSize) {
List<String> parts = new ArrayList<String>();
int len = string.length();
for (int i=0; i<len; i+=partitionSize)
{
parts.add(string.substring(i, Math.min(len, i + partitionSize)));
}
return parts;
}
我该如何修改它,以便它检查换行符(“\r”)并在每次检测到一个时拆分,加上每 90 个字符拆分一次?
__
更新:
使用下面提供的正则表达式解决方案,如下所示:
String[] parts = string.split("(?<=\\G.{" + partitionSize + "})|\r|\n");
我输入了一个跨越多行的字符串,例如:
1.
2.
3.
4.
5.
当我使用下面的正则表达式将其拆分为 array[] 部分时,parts.length 为 8,并且在部分中打印每个项目会返回:
line 0 is 1.
line 1 is
line 2 is 2.
line 3 is
line 4 is 3.
line 5 is
line 6 is 4.
line 7 is
line 8 is 5.
对于这种情况,parts.length 应该是 5。