Получение номеров из отдельного списка - PullRequest
1 голос
/ 09 сентября 2010

У меня есть строка, которая выглядит так

String read = "1130:5813|1293:5803|1300:5755|1187:5731|"

Как видите, есть 4 пары целочисленных значений.

Я хочу добавить туда значения в список примерно так

a = 1130
b = 5813

groupIt pair = new groupIt(a,b);
List<groupIt> group  = new ArrayList<groupIt>();
group.add(pair);

Как я могу сделать это для 4 пары строк.

Можно ли для этого использовать Pattern.compile()? 1012 *

Ответы [ 2 ]

3 голосов
/ 09 сентября 2010

Почему вы не используете

String[] tokens = read.split("\\|");
for (String token : tokens) {
   String[] params = token.split(":");
   Integer a = Integer.parseInt(params[0]);
   Integer b = Integer.parseInt(params[1]);

   // ...

}
0 голосов
/ 09 сентября 2010

Просто для примера, вот ваше регулярное выражение:

public class RegexClass {
    private static final Pattern PATTERN = Pattern.compile("(\\d{4}):(\\d{4})\\|");

    public void parse() {
        String text = "1130:5813|1293:5803|1300:5755|1187:5731|";
        Matcher matcher = PATTERN.matcher(text);
        int one = 0;
        int two = 0;
        while(matcher.find()) {
           one = Integer.parseInt(matcher.group(1));
           two = Integer.parseInt(matcher.group(2));

           // Do something with them here
        }
    }
}

Однако я думаю, что Майкл прав: его решение лучше!

Удачи ...

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