java中用split()方法分割字符串--用特殊字符分割得不到想要的结果的情况

   java中,分割字符串可以使用split()方法来实现分割。

   

	String str1 = "aabccbdd";
	String[] Str1Array = str1.split("b");//结果Str1Array:[aa, cc, dd]

   上面的例子中可以成功的将字符串用“b”来进行分割,得到可与其的结果。

    但是又是偶用特殊字符来分割是得不到自己想要的结果的,如下例子所示:

	String str2 = "aa|cc|dd";
	String[] Str2Array = str2.split("|");//结果Str2Array:[, a, a, |, c, c, |, d, d]
    预期得到的数组应该是[aa, cc, dd]这样,但是显示的结果是这样的:[, a, a, |, c, c, |, d, d]。

    这个是因为|是特殊的字符,这个字符分割需要加上转义字符,才能得到我们想要的结果,如下例子所示:

	String str3 = "aa|cc|dd";
	String[] Str3Array = str3.split("\\|");//结果Str3Array:[aa, cc, dd]

    总结

 

    1.字符"|","*","+"都得加上转义字符,前面加上"\\"。
    2.而如果是"\",那么就得写成"\\\\"。
    3.如果一个字符串中有多个分隔符,可以用"|"作为连字符。

    比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每个字符串分开。这样就把字符串分成了3个子字符串。

    还有一些情况,比如replaceAll方法中,想将()括号去掉也是需要加上转义字符的,因为这些字符跟正则表达式中的符号冲突,所以在非正则的使用方式中,需要用“\\”来进行转义。

你可能感兴趣的:(java)