0

我正在尝试通过 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]);
}
4

1 回答 1

2

尝试使用Pattern.compile来拆分您当前的字符串:

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

用于处理如果数组索引包含空字符串将您的代码更改为:

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{

       }
     }
}
于 2012-12-06T07:14:34.147 回答