-2

我有一个看起来像这样的文本:函数 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行可以防止崩溃......我不知道出了什么问题...请帮助(Android 2.1)

如果有人可以发布代码以使用正则表达式捕获数据,那也会很有帮助...thnx ..

4

2 回答 2

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)));
}
于 2012-01-18T14:29:22.033 回答
-1

利用

int[] num=new int[tokens.length];
for(int i=0;i<tokens.length;i++)
{
   num[i] = Integer.parseInt(tokens[i]);
}
于 2012-01-18T04:47:32.267 回答