日期:2014-05-20 浏览次数:21061 次
public static void main(String[] args) {
String s = "A,B, \"0, b, c\",C , \"4, 5, 6, 7,7, 9\"";
String[] ss = s.split("\"[0-9A-Za-z,\\s]*\"");
int offset = 0;
int from = 0, to = 0;
StringBuffer sb = new StringBuffer();
int i = 0;
for (; i < ss.length; ++i) {
offset = s.indexOf(ss[i]);
from = offset + ss[i].length();
if (i == ss.length - 1) {
to = s.length();
} else {
to = s.indexOf(ss[i + 1], offset);
}
String m = s.substring(from, to);
m = m.replaceAll(",", "");
m = m.replaceAll(" ", "");
sb.append(s.substring(offset, from));
sb.append(m);
}
System.out.println(sb.toString());
}
------解决方案--------------------
呵呵
分隔用:",(?![^\"]*\"\\s*(?:,|$))" 替换用:",(?=[^\"]*\"\\s*(?:,|$))"
------解决方案--------------------
[Quote=引用:]
public static void main(String[] args) throws IOException { String str="A,B,\"aaaaaaaaa,bbb,ccccc\",C"; System.out.println(str); String[] str3 = str.split("(? <!(,\"\\w{0,10})),(?!(\\w{0,10}\",))"); for(int i=0;i <str3.length;i++){ System.out.println(str3[i]); } }