String.split解析

今天在开发某项目的时候发现String.split竟然没有按照预定的规则进行切分,后来度娘之后才发现.

String[] java.lang.String.split(String regex)

特别注意split后面的参数是regular expression ,那么在切分字符串的时候就需要特别注意,如果你想用来做切分的串中含有regular expression包含的特殊字符,那么可能就会出现问题,直接干货!

    public void testDemo4(int appId){
        String str = "|3067515|";
        String splitExpreesion = "|";
        String[] appIdsArray = str.split(splitExpreesion);
        for(String temp:appIdsArray){
            System.out.println(temp);
        }
    }

出来的结果:
运行结果
很神奇吗,本来是想以 | 分割,判断有没有出现中间的那个数字,而现在导致出现的结果却是这样,主要的原因就是 分隔符是regular expression中的特殊字符,需要进行转义。

修改:

    public void testDemo4(int appId) {
        String str = "|3067515|";
        String splitExpreesion = "\\|";
        String[] appIdsArray = str.split(splitExpreesion);
        for (String temp : appIdsArray) {
            if (!temp.equals(splitExpreesion) && temp.equals(appId + "")) {
                System.out.println("getBubbleByCondition4MiddleWare 推广型条件不含渠道气泡  bean = ");
            } else {
                System.out.println("getBubbleByCondition4MiddleWar");
            }
        }
    }

注意splitExpression前面添加了 \ 进行转义,那就要知道regular expression中还包含什么其他字符。
$ ( ) * + . [ ? ^ { |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值