如何在Java中分割String字符串
作者
这篇文章主要介绍“如何在Java中分割String字符串”,在日常操作中,相信很多人在如何在Java中分割String字符串问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何在Java中分割String字符串”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
使用方法
split 方法的一种声明为,
publicString[]split(Stringregex)
其中 regex 指的是正则表达式分隔符,我们平时使用单个字符作为分隔符,其实可以看作特殊的正则表达式,特殊之处在于这种表达式只匹配它自身,如 "-" 只匹配 "-", 示例如下:
Stringstring="86-15003455666";String[]parts=string.split("-");Stringpart1=parts[0];//86Stringpart2=parts[1];//15003455666
split 方法的另一个声明为:
publicString[]split(Stringregex,intlimit)
regex 指的是 正则表达式分隔符,limit 指定的则是分割的份数,举个例子就明白了
Stringstring="004-556-42";String[]parts=string.split("-",2);//限定分割两份Stringpart1=parts[0];//004Stringpart2=parts[1];//556-42
而在某些场景下,我们可能想要在结果中保留分隔符,这也是可以做到了设置分隔符与分割后左侧的结果相连,
Stringstring="86-15003455666";String[]parts=string.split("(?<=-)");Stringpart1=parts[0];//86-Stringpart2=parts[1];//15003455666
设置分隔符与分割后右侧的结果相连,
Stringstring="86-15003455666";String[]parts=string.split("(?=-)");Stringpart1=parts[0];//86Stringpart2=parts[1];//-15003455666
机智的你可能已经发现了,其实分割方法的精妙之处,全在于正则表达式 regex 的设置,正则表达式还是要好好学习的!
妙用正则表达式
在实际的工作场景中,对于要分割的字符串,我们在分割之前,往往需要校验下它的格式,只有符合我们的要求,我们才对它进行拆分处理。而使用 Pattern 类加 Matcher 类,可以使字符串的格式识别和分割操作一气呵成:
publicclassSplitExample{//\d代表数字,+代表出现一次或多次。所以(\\d+)-(\\d+)匹配用"-"相连的两个数字串//Pattern对象是正则表达式的编译表示privatestaticPatterntwopart=Pattern.compile("(\\d+)-(\\d+)");publicstaticvoidcheckString(Strings){//Matcher对象对输入字符串进行解释和匹配操作Matcherm=twopart.matcher(s);if(m.matches()){//m.group(1)和m.group(2)存储分割后的子串System.out.println(s+"matches;firstpartis"+m.group(1)+",secondpartis"+m.group(2)+".");}else{System.out.println(s+"doesnotmatch.");}}publicstaticvoidmain(String[]args){checkString("123-4567");//匹配checkString("s-tar");//字母序列,不匹配checkString("123-");//"-"右侧的数字串为空,不匹配checkString("-4567");//"-"左侧的数字串为空,不匹配checkString("123-4567-890");//存在两个"-",不匹配}}
上述程序的运行结果为:
到此,关于“如何在Java中分割String字符串”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注恰卡编程网网站,小编会继续努力为大家带来更多实用的文章!
目录
推荐阅读
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~