日期:2014-05-20 浏览次数:20878 次
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]); } }