Java 将字符串拆分为数组的n个长度元素

Java 将字符串拆分为数组的n个长度元素,java,regex,arrays,string,Java,Regex,Arrays,String,如果字符串中满是数字,如何使用string.split()将字符串分成相等的部分?为了举例说明,下面的每个零件的尺寸为5 "123" would be split into "123" "12345" would be split into "12345" "123451" would be split into "12345" and "1" "123451234512345" would be split into "12345", "12345" and "12345" etc 这些将放

如果字符串中满是数字,如何使用
string.split()
将字符串分成相等的部分?为了举例说明,下面的每个零件的尺寸为5

"123" would be split into "123"
"12345" would be split into "12345"
"123451" would be split into "12345" and "1"
"123451234512345" would be split into "12345", "12345" and "12345"
etc
这些将放在一个数组中:

String myString = "12345678";
String[] myStringArray = myString.split(???);
//myStringArray => "12345", "678";
我只是不确定要使用的正则表达式,也不知道如何将它分成大小相等的块。

您可以尝试这种方法

String input = "123451234512345";
String[] pairs = input.split("(?<=\\G\\d{5})");
System.out.println(Arrays.toString(pairs));

这个正则表达式使用机制
(?我不知道
“12345”,“1”
是大小相等的块。如果字符串包含数字以外的字符怎么办?会发生什么情况?@RohitJain,我想我要找的是一种每5个位置分割一个字符串的方法。fge,我已经检查了字符,这会引发异常。@RohitJain他不寻找大小相等的字符,他寻找的是相同的模式子st“RISista对于<代码> 1234567123版/代码> + 1发生了什么?一个解释可能有助于更好:)Rojjin在编写它的过程中:这里值得一提的是,作为所有其他锚,查找不消耗任何文本;因为
.split()
通常会消耗delimiter@riista对
“123”
的结果是
[123]
。这个正则表达式决定只在前5位之后分割,因此如果没有,它将不会分割。还值得一提的是
\G
的真正作用,即“从上一个匹配结束的地方开始”;由于正则表达式不使用任何文本,如果此处没有
\G
,它将从下一个字符开始,因为如果匹配项为空(此处为空),正则表达式引擎将移动一个字符。但这可能是很难解释的。。。无论如何,+1
[12345, 12345, 12345]