数组索引超出界限异常android

时间:2012-12-06 07:04:11

标签: android

我试图通过php文件从数据库表中获取数据并在android中显示它。在php文件中,我用“#”分隔每一列。 所以现在我得到像4#2012-11-06#test1#test2这样的价值观。但是对于某些列而言,没有数据。所以这些值就像5 ###。 在这里,当我用#分割并显示数据时,它会抛出超出边界的异常。我该如何解决这个问题?

代码:

String st="1#2012-10-30#test1@2#2012-10-30#test2@3#2012-11-06#test3@9##test1@21##@22##@23##@";
    String[] val = st.trim().split("@");

for (int i = 0; i < val.length; i++)
        {
            String str = val[i];

            String arr[] = str.split("#");
                  System.out.println("arr0" + arr[0]);
            System.out.println("arr1" + arr[1]);
            System.out.println("arr2" + arr[2]);
}

1 个答案:

答案 0 :(得分:2)

尝试使用Pattern.compile分割当前字符串:

String your_string = "4#2012-11-06#test1#test2";
Pattern pattern = Pattern.compile("#");
String[] strarray =pattern.split(your_string);

for Handling如果数组索引包含空字符串,则将代码更改为:

for (int i = 0; i < val.length; i++)
        {
    String your_string =val[i];
    Pattern pattern = Pattern.compile("#");
    String[] strarray =pattern.split(your_string);

     for(int j=0;j<strarray.length;j++){
       if(strarray[j].trim().length() >0){

        System.out.println("arr"+j+"::" + strarray[j]);
       }
      else{

       }
     }
}