您好,欢迎访问一九零五行业门户网

Java中如何对字符串进行分割

使用方法split 方法的一种声明为,
public string[] split(string regex)
其中 regex 指的是正则表达式分隔符,我们平时使用单个字符作为分隔符,其实可以看作特殊的正则表达式,特殊之处在于这种表达式只匹配它自身,如 -  只匹配 -, 示例如下:
string string = 86-15003455666; string[] parts = string.split(-); string part1 = parts[0]; // 86 string part2 = parts[1]; // 15003455666
split 方法的另一个声明为:
public string[] split(string regex, int limit)
regex 指的是 正则表达式分隔符,limit 指定的则是分割的份数,举个例子就明白了
string string = 004-556-42; string[] parts = string.split(-, 2);   // 限定分割两份 string part1 = parts[0]; // 004 string part2 = parts[1]; // 556-42
而在某些场景下,我们可能想要在结果中保留分隔符,这也是可以做到了设置分隔符与分割后左侧的结果相连,
string string = 86-15003455666; string[] parts = string.split((?<=-)); string part1 = parts[0]; // 86- string part2 = parts[1]; // 15003455666
设置分隔符与分割后右侧的结果相连,
string string = 86-15003455666; string[] parts = string.split((?=-)); string part1 = parts[0]; // 86 string part2 = parts[1]; // -15003455666
机智的你可能已经发现了,其实分割方法的精妙之处,全在于正则表达式 regex 的设置,正则表达式还是要好好学习的!
妙用正则表达式在实际的工作场景中,对于要分割的字符串,我们在分割之前,往往需要校验下它的格式,只有符合我们的要求,我们才对它进行拆分处理。而使用 pattern 类加  matcher 类,可以使字符串的格式识别和分割操作一气呵成:
public class splitexample {     //\d代表数字,+代表出现一次或多次。所以(\\d+)-(\\d+)匹配用-相连的两个数字串     // pattern 对象是正则表达式的编译表示     private static pattern twopart = pattern.compile((\\d+)-(\\d+));      public static void checkstring(string s)     {         // matcher对象对输入字符串进行解释和匹配操作         matcher m = twopart.matcher(s);         if (m.matches()) {             //m.group(1) 和 m.group(2) 存储分割后的子串             system.out.println(s +  matches; first part is  + m.group(1) +                     , second part is  + m.group(2) + .);         } else {             system.out.println(s +  does not match.);         }     }      public static void main(string[] args) {         checkstring(123-4567);  // 匹配         checkstring(s-tar);    // 字母序列,不匹配         checkstring(123-);    // -右侧的数字串为空,不匹配         checkstring(-4567);    // -左侧的数字串为空,不匹配         checkstring(123-4567-890);    // 存在两个-,不匹配     } }
上述程序的运行结果为:
以上就是java中如何对字符串进行分割的详细内容。
其它类似信息

推荐信息