В качестве дополнения к ответа Bart Kiers я хочу добавить, что вместо использования трех точек ...
в выражении регулярных выражений, которые представляют три символа, вы можете написать .{3}
, которые имеет тот же смысл.
Тогда код будет выглядеть следующим образом:
String bitstream = "00101010001001010100101010100101010101001010100001010101010010101";
System.out.println(java.util.Arrays.toString(bitstream.split("(?<=\\G.{3})")));
С этим было бы проще изменить длину строки, и создание функции теперь разумным с переменной длиной входной строки. Это может быть сделано следующим образом:
public static String[] splitAfterNChars(String input, int splitLen){
return input.split(String.format("(?<=\\G.{%1$d})", splitLen));
}
Пример в IdeOne: http://ideone.com/rNlTj5