前言 博主针对字符串分割时出现的各种空字符串问题,进入String类的源码看了一下,现作如下解读及演示: 一、split(regex,limit) 首先是带有两个参数的split方法: 作用: 将以
博主针对字符串分割时出现的各种空字符串问题,进入String类的源码看了一下,现作如下解读及演示:
首先是带有两个参数的split方法:
作用:
将以给定正则表达式(regex)的字符串分隔开来
返回值:
此方法返回的数组包含此字符串的每个子字符串,这些子字符串以匹配到的正则表达式(就是以输入的第一个参数regex)作为结束,或由字符串的结尾作为结束。
注意事项:
public class test { public static void main(String[] args) { String str = ",,1,2,3,4"; // 注意这里字符串开头就匹配到了逗号 String[] s = str.split(",",10);// 这里先取10,后文介绍第二个参数 for (String string : s) { System.out.println("子字符串"+string); } System.out.println(s.length); }}
运行结果:
第一个逗号前面会有出现一个空的子字符串
public class test { public static void main(String[] args) { String str = "1,2,3,4"; String[] s = str.split(",",2);//这里输入limit为2,即分成2部分 for (String string : s) { System.out.println("子字符串"+string); } System.out.println(s.length); }}
运行结果:
字符串被分隔成2个子字符串,分隔模式是从前往后的
public class test { public static void main(String[] args) { String str = "1,2,3,4,,,";// 这里后面逗号之间的空字符串将被丢弃 String[] s = str.split(",",0); for (String string : s) { System.out.println("子字符串"+string); } System.out.println(s.length); }}
运行结果:
尾部的空字符串将不会出现在结果数组里
public class test { public static void main(String[] args) { String str = ",1,2,3,4,"; String[] s = str.split(",",-1);//limit值为负数 for (String string : s) { System.out.println("子字符串"+string); } System.out.println(s.length); }}
运行结果:
字符串的尾部空字符串不会被丢失
接下来只带有一个参数的split方法就容易了,就是默认limit的值为0.
该方法的工作原理就是用给定regex参数和一个limit参数默认为0来调用两个参数的split方法。因此,结果数组中不包含尾随的空字符串。
以上就是对String类中split方法的源码解读以及所有的注意事项,纯手打,有帮助的话麻烦给个关注+点赞收藏哟♥♥♥
来源地址:https://blog.csdn.net/qq_43575801/article/details/125946104
--结束END--
本文标题: String.split()最详细源码解读及注意事项
本文链接: https://lsjlt.com/news/393874.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0