Честно говоря String#substring()
, вероятно, лучший способ пойти сюда. Если вы действительно хотели решение на основе регулярных выражений, вот один из способов:
String input = "123454212323";
input = input.replaceAll("(\\d{2})(\\d{3})(\\d)(\\d{6})", "$1 $2 $3 $4");
String[] attributes = input.split(" ");
System.out.println(Arrays.toString(attributes));
Это печатает:
[12, 345, 4, 212323]
Стратегия здесь состоит в том, чтобы принять ввод числовой строки, а затем выполнить регулярное выражениезамена для разделения различных числовых групп по пробелам. Затем мы можем выполнить простое разбиение строки, чтобы получить массив с каждым атрибутом в качестве отдельного элемента.
123454212323 -> 12 345 4 212323