您的位置:首页 > 其它

String.split解析

2015-12-30 16:46 309 查看
今天在开发某项目的时候发现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中还包含什么其他字符。

$ ( ) * + . [ ? ^ { |
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string split regex