首页 > 代码库 > 关于split遇到的一个奇葩问题

关于split遇到的一个奇葩问题

split用于分割字符串得到字串数组这是基本用法。如下:

def str= "3 2"
if(str.contains(" ")){
    println str.split(‘ ‘)[0] // 3
}

可是换一种情况:

def str= "3+2"
if(str.contains("+")){
    println str.split(‘+‘)[0] //报错
}

 

却报错了!

image

百度查清楚原因发现:

出现+、*、|、/ 等正则中使用的特殊字符。split函数把"+"当作正则处理了。

只需要加[] 即可

def str= "3+2"
if(str.contains("+")){
    println str.split(‘[+]‘)[0]  //可以正常输出
}

关于split遇到的一个奇葩问题