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 に答える