1、必备字符串操作
我们将字符串操作分为下面6种:
- 基本操作方法
- 字符串判空、比较
- 字符串截取和拆分
- 字符串查找和替换
- 字符串和其他类型数据的转换
- 字符串拼接和格式化
今天我们来讲解第三节。
2、字符串截取和拆分
2.1 对于字符串截取的原生操作
//原生方法:publicString.substring(intbeginIndex, intendIndex)
问题:你能记得截取的部分包含开始索引还是包含结束索引?
如果你不能第一时间回答这个问题,说明你对原生方法使用不熟悉,在开发时候,你可能会查阅jdk文档,或者写测试方法验证。
这在日常开发中会浪费一定时间。
答案:结果中包含beginIndex
,但是不包含endIndex
。
原生方法使用限制:使用前要判空,记住开始和结束索引是否包含在结果内。
特别麻烦的是,如果你要截取指定分割符之间的部分,需要再使用indexOf()
方法获得索引,作为开始索引记得要加1。
代码如下:
Stringss="java_pandas.jpg"; if (ss!=null) { Strings1=ss.substring(ss.indexOf("_") +1, ss.indexOf(".")); }
2.2 推荐字符串截取操作
Apache工具类StringUtils.substringXX()
优势:不用担心字符串为null(空),方法名直白。
推荐常用方法:
// 截取字符串2个字符中间的字符串publicstaticStringsubstringBetween(Stringstr, Stringopen, Stringclose) // 截取指定分割符后面的部分publicstaticStringsubstringAfterLast (Stringstr, Stringseparator) // 截取指定分割符前面的部分publicstaticStringsubstringBeforeLast (Stringstr, Stringseparator)
对于substringBetween
方法,结果就是不包含开始和结束分割符的部分,这也很符合一般的操作思维。
对于上面提到的一个截取特定分割符之间的部分,可以一行代码搞定。
Stringss="java_pandas.jpg"; Strings2=StringUtils.substringBetween(ss, "_", ".");
开发中比较常见的需求是截取某个特定分割符之间的字符串,又或者是截取特定分割符前(后)的字符串。
这些在工具类中直接调用,比自己写方法要方便很多。
3、demo用例
importorg.apache.commons.lang3.StringUtils; /*** Java实用技术手册 By Pandas。* JDK版本:jdk1.8.0_66** @author Pandas* @date 2021/10/7*/publicclassStringSub { /*** 截取字符串方法用哪个?*/publicstaticvoidmain(String[] args) { Stringss="java_pandas.jpg"; System.out.println("*** String原生substring方法 ***"); // 对下划线和句号之间内容截取if (ss!=null) { Strings1=ss.substring(ss.indexOf("_") +1, ss.indexOf(".")); System.out.println(s1); } System.out.println("*** StringUtils 方法 *****"); Strings2=StringUtils.substringBetween(ss, "_", "."); System.out.println(s2); // 获取文件后缀名Stringpostfix=StringUtils.substringAfterLast(ss, "."); StringfileName=StringUtils.substringBeforeLast(ss, "."); System.out.println("文件名:"+fileName); System.out.println("文件后缀:"+postfix); } } /** 运行结果===>*** String原生substring方法 ***pandas*** StringUtils 方法 *****pandas文件名:java_pandas文件后缀:jpg*/
4、总结
非必要情况下不要使用原生的substring
方法,请直接使用StringUtils.substringXX()
。
是不是感觉前2期都比较简单?
现在是热身操作,后面会有更复杂的高阶技巧等着你。
欢迎阅读本期内容,希望对新入行的你有帮助。
我是Pandas,专注Java编程实用技术分享,公众号
Java实用技术手册
和B站均有视频解说,欢迎来玩。如果你觉得这篇文章有用,别忘了点赞+关注,一起进步!