JAVA Split 需要注意的一点

在平常的编码中,可能会经常用到String的split方法,用来将字符串分割成数个对象进行处理。但是往往会碰到分割结果不正确的时候,到底是什么原因呢,进入java的API进行彻底的分析理解吧。

pulic String[] split(String regex, int limit){
    return Pattern.compile(regex).split(this,limit);
}

看到这里你应该就能大概明白其中的原委了,我们不去深究Pattern的split方法是如何实现分割的,我们只要看到实际上我们传入的分隔符其实是被看待成一个正则表达式去解析的,因此String的split这个方法其实支持的是正则表达式的分割,而不简简单单的仅支持一个字符串的分割符。因此,如果你传入了一个字符串作为分割符,而恰巧这个字符串含有正则表达式的关键字,那么恭喜了,你可能会得到一个被分割的支离破碎的数组或者一个血淋淋的ERROR。

所以,在非要以特殊字符进行分割的情况下,想要得到正确的结果,我们要对这些关键字进行反斜杠转义或者用[]来包围起来。

例如我们要对字符串 “12345*6789*9876*54321” 进行*符号的分割,那么传入的分割符应该是[*]或者\\*。

常见的关键字比如 * , | ,? , + , . , ^ , $ , 还有一些括号吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值