【问题标题】:Android parse String ArrayIndexOutOfBoundsExceptionAndroid 解析字符串 ArrayIndexOutOfBoundsException
【发布时间】:2011-11-16 02:54:48
【问题描述】:

我正在尝试解析一个字符串以获得 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]);

(如果我把它作为注释,它会从下一行给出同样的错误)

感谢您的帮助!

【问题讨论】:

    标签: android string parsing integer


    【解决方案1】:

    String.split() 采用正则表达式,在这种情况下,. 表示“任何字符”。你会想像这样逃避它:\.。由于您将正则表达式指定为 String 文字,因此您需要将反斜杠加倍:dateModif.split("\\.")

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

    【讨论】:

    • 感谢您的快速回答!我知道使用真实日期解析会更好,但这是针对非常特殊的事情。
    【解决方案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]);
    

    看看这个

    【讨论】:

      猜你喜欢
      • 2012-05-13
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多