Извлечь шаблон чисел из строки и поместить в объект - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть массив с кратными целочисленными кодами разных размеров, я бы проанализировал эти числа для объектов. Длина кодов всегда одинакова.

Например, шаблон будет таким:

"123454212323"

  • 2 первые цифры в 1 атрибутеobject (12)
  • 3 следующих цифры в другом атрибуте (345)
  • 1 следующая цифра в другом атрибуте (4)
  • последние 6 цифр в другом атрибуте (212323)

Я пытался с регулярным выражением, но я думаю, что это слишком сложно ... Есть какой-нибудь элегантный / легкий способ сделать это? Мне нужно это для 10 различных шаблонов, и я знаю лучшее решение.

Я могу использовать внешние библиотеки, такие как Dozer.

1 Ответ

1 голос
/ 30 сентября 2019

Честно говоря 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...