我正在尝试解析一个String以获得3个Integer但我有一个Force Close并且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]);
(如果我把它作为评论,它会给下一行带来同样的错误)
感谢您的帮助!
答案 0 :(得分:3)
String.split()
采用正则表达式,.
表示“任何字符”。你想要像这样逃避它:\.
。由于您将正则表达式指定为String
字面值,因此您需要将反斜杠加倍:dateModif.split("\\.")
。
但最好使用真实日期解析方法。
答案 1 :(得分:0)
String dateModif = tvDateAffichee.getText().toString();
String []separatedDate=dateModif.split("[.]");
mDay = Integer.parseInt(separatedDate[0]);
mMonth = Integer.parseInt(separatedDate[1]);
mYear = Integer.parseInt(separatedDate[2]);
检查出来