摘要:Java语言中的 split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回。
Java语言中的 split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回;
例如:
Stringstr="1234@abc";String[]a=str.split("@");
System.out.println("处理结果:"+a[0]+","+a[1]);//输出的是:处理结果:1234,abc
对于分割的字符(串),通常是常见,普通的,没什么问题;
但是对某些特殊字符,如果字符(串)正好是正则的一部分,则需要转义才能使用,
这些字符有 | , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , \等, 因它们是正则表达式中的一部分, 所以如果想用该字符本身, 这些字符需要进行转义才能表示它本身;
例如:
想用 | 竖线去分割某字符,因 | 本身是正则表达式中的一部分,所以需要 \ 去转义,因转义使用 \, 而这个 \ 正好也是正则表达式的字符,所以还得用一个 \ , 所以需要两个 \\。
Stringstr="5678|XYZ";String[]b=str.split("\\|");//注意这里用两个\\,而不是一个\
System.out.println("处理结果:"+b[0]+","+b[1]);//输出的是:处理结果:5678,XYZ
再来看看:
Stringstr="5678|XYZ";String[]b=str.split("|");//注意直接使用|,该字符是正则表达式的一部分,
Stringx="处理结果:";for(inti=0;ix=x+b[i]+",";}
System.out.println(x);//输出的是:处理结果:5,6,7,8,|,X,Y,Z,
可能我们人为主观感觉是用 | 来分割希望得到 5678 和 XYZ,因用特殊字符,实际结果是得到意外的结果;
今天下午就这个地方耗了几个小时,头晕才发现问题所在,555....
所以指定分割的字符(串)时,最好不要包含用于正则表达式本身的字符,如上面的红色字符;
本文由职坐标整理并发布,希望对同学们学习Java的知识有所帮助。了解更多详情请关注职坐标Java频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号