当前位置: 代码迷 >> J2SE >> 字符串切割解决思路
  详细解决方案

字符串切割解决思路

热度:202   发布时间:2016-04-23 20:17:40.0
字符串切割
本帖最后由 zhouxy123 于 2014-09-23 10:53:30 编辑
有这么一个字符串:
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());
}


不知道你是不是想要这样的..   菜鸟勿喷..
  相关解决方案