一个像下面这样的字符串abcd sss aaa "xing ming"我如何用Split得到x[0] = abcd
x[1] = sss
x[2] = aaa
x[3] = "xing ming"Split中间的正则该怎么写。
或者不用正则,有什么其他的方法也可以实现?

解决方案 »

  1.   

    public class Test5 {    public static void main(String[] args) {        
            String str = "abcd sss aaa \"xing ming\" adda \"aa df\" ttt abc " +
             "\"a b c d\"  123 \"1 2 3 4 \"  66 3 ";
            String[] strs = str.split(" +(?![^\"]* *\"(?: |$))");        
            for(int i = 0; i < strs.length; i++) {
                System.out.println(strs[i]);
            }
        }
    }如果:\"xing ming\" 改成 \" xing ming\" 这样,也就是在 xing 前面加个空格就无效了,这时得采用其他的办法,不能用 split 了。