有这么一个字符串:
str = "20140923|#|123|#|2014092300000001|#|xx|#|中国好声音|#|A|#|B|#||#||#|"
如果我使用String类的split方法 split("\\|#\\|"),得到的数组长度是7,事实上这并不是我想要的。我期望的结果 数组的个数应该是10,也就是说遇到这种情况的 |#||#| ,是得到3个 空字符串 “” 。哪位朋友 能提供一下思路。
------解决思路----------------------
public static void main(String[] args) {
String str = "20140923
------解决思路----------------------
#
------解决思路----------------------
123
------解决思路----------------------
#
------解决思路----------------------
2014092300000001
------解决思路----------------------
#
------解决思路----------------------
xx
------解决思路----------------------
#
------解决思路----------------------
中国好声音
------解决思路----------------------
#
------解决思路----------------------
A
------解决思路----------------------
#
------解决思路----------------------
B
------解决思路----------------------
#
------解决思路----------------------
#
------解决思路----------------------
#
------解决思路----------------------
";
List<String> list = new ArrayList<String>();
while(str.indexOf("
------解决思路----------------------
#
------解决思路----------------------
") != -1){
String temp = str.substring(0,str.indexOf("
------解决思路----------------------
#
------解决思路----------------------
"));
list.add(temp);
if(str.indexOf("
------解决思路----------------------
#
------解决思路----------------------
#
------解决思路----------------------
") == str.indexOf("
------解决思路----------------------
#
------解决思路----------------------
")){
if(temp.length()==0){
str = str.substring("
------解决思路----------------------
#
------解决思路----------------------
".length());
}else{
str = str.substring(temp.length());
}
}else{
str = str.substring(str.indexOf("
------解决思路----------------------
#
------解决思路----------------------
")+"
------解决思路----------------------
#
------解决思路----------------------
".length());
}
}
for(String s : list){
System.out.println(s);
}
System.out.println("list size:::::"+list.size());
}
不知道你是不是想要这样的.. 菜鸟勿喷..