String code="pp+uu+ee+ww+qq";
String[] code1=code.split("+");
为什么用加号就分割不了呢?用其他任何的字符替代加号都可以分割,难道这里加号被看成连字符了?
难道要用最土的方法来提取不是加号的字符?
请大家给解释一下为什么不能用加号解决这个字符串啊
谢谢~~

解决方案 »

  1.   

    为了一劳永逸起见,若只想使用字面上的意思来分隔,还可以改为:String separator = "+";
    String[] code1 = code.split(Pattern.quote(separator));
      

  2.   

    String类的方法split中,传入参数为正则表达式,而‘+’是正则表达式中的特殊字符,必须经过转义才能使用,正解见1楼关于特殊字符的信息,可以参看Pattern类(为正则表达式的实现)中的说明
    http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/regex/Pattern.html
      

  3.   

    Pattern.quote()方法是JDK5.0中新增加的。
      

  4.   

    quote()方法是用来表示转意的意思? 为啥不叫escape呢?
      

  5.   

    回12楼的“\+”是正则表达式的转义形式,但是“\”在Java中属于转义字符,要想得到“\+”的字符串必须使用“\\+”。正则表达式中一共有15个元字符,它们都表示有特殊的含义,若需要使用它们的字符意思时就需要进行转义。这15个元字符分别是:{ [ ( ) ] } \ ^ - $ | ? * + .
      

  6.   

    呵呵,楼上的不认真哦,String类的split方法的参数就是正则表达式。
      

  7.   

    感觉java的牛人真是多。学得这么精,看来我得抓紧学习了。