Как разбить строку Java с помощью REGEX на массив - PullRequest
0 голосов
/ 18 января 2012

Я получил строку Java следующим образом:

C | 51199120 | 36937872 | 14261248 | 0,73 | I | 102398308 | 6240560 | 96157748 | 0,07 | J | 90598564 | 1920184 | 8867 8380 | 0,0

Я хочу разделить это, используя регулярные выражения в качестве строковых массивов:

Array1 = C,51199120,36937872,14261248,0.73
Array2 =I,102398308,6240560,96157748,0.07
Array3 =J,90598564,1920184,88678380,0.03

Кто-нибудь может помочь с кодом Java?

Ответы [ 4 ]

0 голосов
/ 18 января 2012

Проще просто разделить, чем зациклить.
Более или менее:

String input = ...
String[] splitted = input.split("|");
List<String[]> resultArrays = new ArrayList<String[]>();
String[] currentArray = null;
for (int i = 0; i < splitted.length; i++) {
    if (i % 5 == 0) {
        currentArray = new String[5];
        resultArrays.put(currentArray);
    }
    currentArray[i%5] = splitted[i];
}
0 голосов
/ 18 января 2012

Вы можете легко разбить вашу строку на подкомпоненты, используя String.split("\\|"), но регулярные выражения не помогут вам сгруппировать их в разные массивы, а также не помогут преобразовать подстроки в соответствующий тип.Для этого вам понадобится отдельная логика.

0 голосов
/ 18 января 2012

Использовать String.split() метод.

 String []ar=str.split("(?=([A-Z]))");
 for(String s:ar)
   System.out.println(s.replace("|",","));
0 голосов
/ 18 января 2012

Я не думаю, что это так просто.У вас есть две вещи, которые вам нужно сделать:

  1. Разбить входную строку при обнаружении буквы
  2. Разбить каждую подстроку по трубе

Я не эксперт по регулярным выражениям, но я не думаю, что это может быть один шаблон.Вам нужно два и цикл над подстрокой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...