我试图通过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]);
}
答案 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{
}
}
}