Android解析String ArrayIndexOutOfBoundsException

发布于 2024-12-04 08:16:56 字数 582 浏览 1 评论 0原文

我试图解析一个字符串以获得 3 个整数,但我有一个强制关闭并且 LogCat 说:ArrayIndexOutOfBoundExceptions

这是我的代码的相关部分:

    dateModif = tvDateAffichee.getText().toString();

    String[] separatedDate = dateModif.split(".");

    mDay = Integer.parseInt(separatedDate[0]);
    mMonth = Integer.parseInt(separatedDate[1]);
    mYear = Integer.parseInt(separatedDate[2]);

我用 toast 检查了字符串的值,它包含类似的值,例如: 13.9.2011

错误来自这一行:(

    mDay = Integer.parseInt(separatedDate[0]);

如果我把它作为评论,它在下一行给出了同样的错误)

感谢您的帮助!

I'm trying to parse a String to obtain 3 Integer but I have a Force Close and the LogCat says : ArrayIndexOutOfBoundExceptions.

Here is the concerned part of my code :

    dateModif = tvDateAffichee.getText().toString();

    String[] separatedDate = dateModif.split(".");

    mDay = Integer.parseInt(separatedDate[0]);
    mMonth = Integer.parseInt(separatedDate[1]);
    mYear = Integer.parseInt(separatedDate[2]);

I checked the value of the string with a toast and it contains values like, for example : 13.9.2011

The mistake comes from this line :

    mDay = Integer.parseInt(separatedDate[0]);

(If I put it as comment, it gives the same mistake frome the next line)

Thanks for your help!

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

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

发布评论

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

评论(2

記憶穿過時間隧道 2024-12-11 08:16:56

String.split()< /code>采用正则表达式,其中 . 表示“任何字符”。您需要像这样转义它:\.。由于您将正则表达式指定为 String 文字,因此您需要使用双反斜杠:dateModif.split("\\.")

但最好使用真实的日期解析方法。

String.split() takes a regex in which case . means "any character". You'll want to escape it like this: \.. And since you specify the regex as a String literal, you'll need to double the backslashes: dateModif.split("\\.").

But it would be better to use real date parsing methods for this.

太阳哥哥 2024-12-11 08:16:56
String dateModif = tvDateAffichee.getText().toString();

String []separatedDate=dateModif.split("[.]");

    mDay = Integer.parseInt(separatedDate[0]);
    mMonth = Integer.parseInt(separatedDate[1]);
    mYear = Integer.parseInt(separatedDate[2]);

看看这个

String dateModif = tvDateAffichee.getText().toString();

String []separatedDate=dateModif.split("[.]");

    mDay = Integer.parseInt(separatedDate[0]);
    mMonth = Integer.parseInt(separatedDate[1]);
    mYear = Integer.parseInt(separatedDate[2]);

check this out

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文