日期:2014-05-20  浏览次数:20659 次

当String的split遇到“|”
想用分隔符分割字串为子字串,看到String有split函数,想不用自己写了,但是运行结果完全摸不着头脑。

Java code

    public static void main(String[] args){
        String n = "ada|badf";
        String[] m = n.split("|");
        for(int i=0;i<m.length;i++){
            System.out.println(m[i]);
        }
    }


运行结果如下:

a
d
a
|
b
a
d
f
但是当把分隔符改变以后:
Java code

    public static void main(String[] args){
        String n = "ada~badf";
        String[] m = n.split("~");
        for(int i=0;i<m.length;i++){
            System.out.println(m[i]);
        }
    }


输出结果就正常了:

ada
badf


------解决方案--------------------
楼主忘了用转义符号了,这样就好了:
Java code
public static void main(String[] args){
        String n = "ada|badf";
        String[] m = n.split("\\|");
        for(int i=0;i<m.length;i++){
            System.out.println(m[i]);
        }
    }

------解决方案--------------------
这样也可
Java code

public static void main(String[] args){
        String n = "ada|badf";
        String[] m = n.split("[|]");
        for(int i=0;i<m.length;i++){
            System.out.println(m[i]);
        }
    }