首页 / JAVA / java中优雅的切割字符串
java中优雅的切割字符串
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java中优雅的切割字符串,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2213字,纯文字阅读大概需要4分钟。
内容图文
![java中优雅的切割字符串](/upload/InfoBanner/zyjiaocheng/592/f8c0dbef11294687a80877041c2e1544.jpg)
切割字符串
分隔字符串是java中常用的操作,String的split方法可以进行字符串切割操作,然而日常使用却仅仅限于str.split("-"),其中“-”为分隔符。其实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
所以说要妙用正则表达式,代码示例:
//\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"); // 存在两个"-",不匹配
}
运行结果:
123-4567 matches; first part is 123, second part is 4567.
s-tar does not match.
123- does not match.
-4567 does not match.
123-4567-890 does not match.
内容总结
以上是互联网集市为您收集整理的java中优雅的切割字符串全部内容,希望文章能够帮你解决java中优雅的切割字符串所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。