It looks like this is a bug with a result threshold limit in your Java environment. Try to get around it by specifying the restriction explicitly:
String str="splitstring";
int partsCount = (str.length() + 1) / 2;
System.out.println("Split.."+str.trim().split("(?<=\\G.{2})", partsCount).length);
System.out.println("Split.."+str.trim().split("(?<=\\G.{2})", partsCount)[0]);
System.out.println("Split.."+str.trim().split("(?<=\\G.{2})", partsCount)[1]);
source
share