2012-01-18 2 views
-2

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

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

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

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

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

+1

Какая ошибка? – Joe

+0

Необходимо знать сообщение об ошибке. Похоже, что в этом фрагменте кода ничего не происходит, что приведет к ошибке. – Steven

+0

Опубликуйте stacktrace и попробуйте зарегистрировать значение 'tokens [1]'. –

ответ

-1

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

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

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

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

thnks henrik для регулярного выражения :) ... parseInt по-прежнему вызывает сбой ... код работает нормально! – user1155386