parseInt崩溃

时间:2012-01-18 04:28:51

标签: java android crash parseint

我有一个看起来像这样的文本:功能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 个答案:

答案 0 :(得分: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)));
}

答案 1 :(得分:-1)

使用

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