当前位置:编程学习 > JAVA >>

字符串分割问题

有字符串 a,b,c,"a,b",c,d,"e,f",d我想分割成
a
b
c
a,b
c
d
e,f
d
有人知道怎么分割吗? --------------------编程问答-------------------- split(",") --------------------编程问答-------------------- 应该要分2次,不过"需不需要转义,再把空的去掉就可以了 --------------------编程问答-------------------- 没分出来  --------------------编程问答--------------------  "a,b,c,\"a,b\",c,d,\"e,f\",d"
给你一个思路,你先把这个字符串都转化为字符的数据。
然后,入栈吧。如果遇到,号就出栈,如果面放的有"号,遇到"才出栈。出的部分,就是你的组成部分了。 --------------------编程问答--------------------

public static void main(String argv[]) {
  String s="a,b,c,'a,b',c,d,'e,f',d";
  List list = splitMethod(s);
  for(int i=0;i<list.size();i++){
  System.out.println(list.get(i));
  }
}

private static List splitMethod(String s) {
List list = new ArrayList();
String[] s1=s.split("'");
  for(String lists:s1){
  if(lists.startsWith(",")||lists.endsWith(",")){
  String [] s2=lists.split(",");
  for(String list2:s2){
  if(!list2.equals("")){
  list.add(list2);
  }
  }
  }else{
  list.add(lists);
  }
  }
return list;
}

--------------------编程问答-------------------- 一直想能不能用正则提取一下。
提取规则是""包含的或者被,分割的。。
但是正则用的不是特熟,没写出来 --------------------编程问答-------------------- 不太了解你的具体需求根据这个

split(","|",|(?<!"\\w),") --------------------编程问答--------------------
引用 7 楼 zqfddqr 的回复:
不太了解你的具体需求根据这个

split(","|",|(?<!"\\w),")


厉害 --------------------编程问答-------------------- public static void main(String[] args) {
String str = "a,b,c,\"a,b\",c,d,\"e,f\",d";
String[] strArr = str.split(",");
String temp = "";
int count = 0;
for (String s : strArr) {
if (s.indexOf("\"") == 0) {
temp += s;
count ++;
} else {
if (count > 0) {
temp += "," + s;
if (s.indexOf("\"") == s.length()-1) {
s = temp;
temp = "";
count = 0;
}
}
}
if (count == 0) {
System.out.println(s);
}
}
}
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,