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

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

------解决方案--------------------
code.split("\\+");
------解决方案--------------------
String类的方法split中,传入参数为正则表达式,而‘+’是正则表达式中的特殊字符,必须经过转义才能使用,正解见1楼

关于特殊字符的信息,可以参看Pattern类(为正则表达式的实现)中的说明
http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/java/util/regex/Pattern.html
------解决方案--------------------
1楼正解
------解决方案--------------------
quote()方法是用来表示转意的意思? 为啥不叫escape呢?

------解决方案--------------------
java.util.regex 
这个包
------解决方案--------------------
回12楼的

“\+”是正则表达式的转义形式,但是“\”在Java中属于转义字符,要想得到“\+”的字符串必须使用“\\+”。

正则表达式中一共有15个元字符,它们都表示有特殊的含义,若需要使用它们的字符意思时就需要进行转义。

这15个元字符分别是:

{ [ ( ) ] } \ ^ - $ | ? * + .
------解决方案--------------------
加上转义字符!!!