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