parseInt 崩溃

发布于 2024-12-27 22:32:20 字数 416 浏览 2 评论 0原文

我有一个如下所示的文本:函数 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..

I have a text that looks like this: function 23 34 56 and I need to extract the 23, 34 and 56 as numbers. So I write something like:

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

The app crashes here. where could the error be?

I tried finding the length of tokens... comes out to be 4 (for the string "func 23 34 56")... the exception thrown is "numberformatexceptio"... commenting out the parseInt line prevents the crash... i have no clue about what is going wrong... plse help (Android 2.1)

If anyone can post a code to capture the data using regex, that would be helpful too...thnx..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

吹梦到西洲 2025-01-03 22:32:20

您发布的代码运行良好。不过,这是一个正则表达式解决方案:

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)));
}

The code, you posted, runs fine. Nevertheless here is a regex solution:

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)));
}
做个少女永远怀春 2025-01-03 22:32:20

使用

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

use

int[] num=new int[tokens.length];
for(int i=0;i<tokens.length;i++)
{
   num[i] = Integer.parseInt(tokens[i]);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文