您现在的位置是:亿华云 > 应用开发
如何在 Java 中优雅地分割 String 字符串
亿华云2025-10-08 23:29:14【应用开发】9人已围观
简介分割字符串是 Java 编程中常用的操作,相信很多同学都知道,String 类中的 split 方法可以进行字符串分割,然而日常使用起来却仅限于 str.split( "-"),其中 "-"为分隔符。
分割字符串是中g字 Java 编程中常用的操作,相信很多同学都知道,优雅String 类中的地分 split 方法可以进行字符串分割,然而日常使用起来却仅限于 str.split( "-"),符串其中 "-"为分隔符。中g字其实 split 方法的优雅功能非常强大,可以更优雅地使用它分割字符串。地分
使用方法
split 方法的符串一种声明为,
public String[] split(String regex)其中 regex 指的中g字是正则表达式分隔符,我们平时使用单个字符作为分隔符,优雅其实可以看作特殊的地分正则表达式,特殊之处在于这种表达式只匹配它自身,符串如 "-" 只匹配 "-",中g字 示例如下:
String string = "86-15003455666"; String[] parts = string.split("-"); String part1 = parts[0]; // 86 String part2 = parts[1]; // 15003455666split 方法的另一个声明为:
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"); // 存在两个"-",不匹配 } }上述程序的运行结果为:
很赞哦!(8573)
相关文章
- 4、企业无形资产:通用网站已成为企业网络知识产权的重要组成部分,属于企业的无形资产,也有助于提升企业的品牌形象和技术领先形象。它是企业品牌资产不可或缺的一部分。
- 如何优雅的解决分布式数据库的复杂故障
- SpringSecurity结合JWT实现前后端分离的后端授权
- MySQL写缓冲(change buffer),终于懂了!!!(收藏)
- 这个不用多说,不同平台的注册价格不同,且不同平台对域名释放交易的把控与曝光不同,当然价格相对便宜且平台渠道广操作便利的平台最好。
- 告别BeanUtils,Mapstruct从入门到精通
- 利用binlog2sql快速闪回误删除数据 - 别拿豆包不当干粮
- MySQL与DB2的数据类型对比
- 域名不仅仅是一个简单的网站。对于有长远眼光的公司来说,在运营网站之前确定一个优秀的域名对有长远眼光的公司来说是非常重要的。这对今后的市场营销、产品营销和企业品牌建设都具有十分重要的意义。优秀的域名是企业在市场竞争中获得持久优势的利器。
- 图解5种Join连接及实战案例!(inner/ left/ right/ full/ cross)