String类下split使用注意

来源:互联网 发布:black devil香烟淘宝 编辑:程序博客网 时间:2024/06/05 05:15

今天开发,遇到了一个比较意外的问题。

1、问题描述:

       String.split(”.”);//以点作为分隔符

      结果得到的数组引用时,老报下标越界错误,后来测试也发现长度就是为零。

2、问题分析:

     开始时,怀疑此种分隔符是一种特殊的字符,莫非是要转义。于是加了两个斜杠,即:String.split(”//.”),测试通过。

   3、总结如下:

    1)、是点和|作为分隔符,出现此种错误,因为在在split(表达式)中,表达式其实是一个正则表达式,.和|是一种有特殊含义的字符,如果要使用此种字符作为分隔符,要使用转义字符加以转义方可得到正确结果。

   2)如果想要使用多个分隔符,可以使用|分隔开,比如使用 @和?作为分隔符,即为String.split(”@|?);

    3)使用String.split(””)时,往往容易忽略的一个地方就是分割的字符数组中,示例:“a/b/c////”.split(”/”)的长度不是6,而是3,因为分割后,java中会从后面开始检查所得的数组,把空的去掉,返回非空的3个数组。


例:

System.out.println("abcd0@|#asdf1@|#kkkw22@|#".split("@//|#")[1]);

输入为asdf1   , 注意split里面“//|”转意

 

符号“.”,“|”,“$”是正则表达式特殊符号,要作转义,包括还很多,不一一举例!使用时注意!

原创粉丝点击