parseInt сбой - PullRequest
       32

parseInt сбой

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

У меня есть текст, который выглядит следующим образом: функция 23 34 56, и мне нужно извлечь 23, 34 и 56 как числа. Поэтому я пишу что-то вроде:

 String s = "function 2 3 4";
 String[] tokens = (s.trim()).split(" ");
 int num1 = Integer.parseInt(tokens[1]); 

Приложение вылетает здесь. где может быть ошибка?

Я попытался найти длину токенов ... получается 4 (для строки "func 23 34 56") ... выдается исключение "numberformatexceptio" ... комментирование строки parseInt предотвращает сбой ... я понятия не имею, что происходит не так, как надо ... plse help (Android 2.1)

Если кто-нибудь может опубликовать код для сбора данных с помощью регулярных выражений, это тоже будет полезно ... thnx ..

Ответы [ 2 ]

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

Код, который вы разместили, работает нормально. Тем не менее, вот решение для регулярных выражений:

String s = "function 2 3 4";
Pattern p = Pattern.compile("function\\s+(\\d+)\\s+(\\d+)\\s+(\\d+)");
Matcher m = p.matcher(s);
if (m.matches()) {
    System.out.println(Integer.parseInt(m.group(1)));
    System.out.println(Integer.parseInt(m.group(2)));
    System.out.println(Integer.parseInt(m.group(3)));
}
0 голосов
/ 18 января 2012

использование

int[] num=new int[tokens.length];
for(int i=0;i<tokens.length;i++)
{
   num[i] = Integer.parseInt(tokens[i]);
}
...