Common-lang包中StringUtils用法

一种高超声速飞行器弹道的仿真方法 设计并实现了一个高超声速飞行器弹道仿真算法,并应用到基于OSGEarth的态势中。 阅读详情

StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应处理,例如,如果输入为 null 则返回也是 null 等,具体可以查看源代码)。

除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用 StringUtils.xxx()
下面分别对一些常用方法做简要介绍:


1. public static boolean isEmpty(String str)
判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0
下面是 StringUtils 判断是否为空的示例:

StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false


2. public static boolean isNotEmpty(String str)
判断某字符串是否非空,等于 !isEmpty(String str)
下面是示例:

StringUtils.isNotEmpty(null) = false
StringUtils.isNotEmpty("") = false
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty("bob") = true
StringUtils.isNotEmpty(" bob ") = true

3. public static boolean isBlank(String str)
判断某字符串是否为空或长度为0或由空白符(whitespace) 构成
下面是示例:
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符

StringUtils.isBlank() //均识为空白符
StringUtils.isBlank("\b") = false //"\b"为单词边界符
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false

4. public static boolean isNotBlank(String str)
判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成,等于 !isBlank(String str)
下面是示例:

StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank("\t \n \f \r") = false
StringUtils.isNotBlank("\b") = true
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true

5. public static String trim(String str)
去掉字符串两端的控制符(control characters, char <= 32) , 如果输入为 null 则返回null
下面是示例:
StringUtils.trim(null) = null
StringUtils.trim("") = ""
StringUtils.trim(" ") = ""
StringUtils.trim(" \b \t \n \f \r ") = ""
StringUtils.trim(" \n\tss \b") = "ss"
StringUtils.trim(" d d dd ") = "d d dd"
StringUtils.trim("dd ") = "dd"
StringUtils.trim(" dd ") = "dd"

6. public static String trimToNull(String str)
去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null 或"",则返回 null
下面是示例:
StringUtils.trimToNull(null) = null
StringUtils.trimToNull("") = null
StringUtils.trimToNull(" ") = null
StringUtils.trimToNull(" \b \t \n \f \r ") = null
StringUtils.trimToNull(" \n\tss \b") = "ss"
StringUtils.trimToNull(" d d dd ") = "d d dd"
StringUtils.trimToNull("dd ") = "dd"
StringUtils.trimToNull(" dd ") = "dd"

7. public static String trimToEmpty(String str)
去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null 或 "" ,则返回 ""
下面是示例:
StringUtils.trimToEmpty(null) = ""
StringUtils.trimToEmpty("") = ""
StringUtils.trimToEmpty(" ") = ""
StringUtils.trimToEmpty(" \b \t \n \f \r ") = ""
StringUtils.trimToEmpty(" \n\tss \b") = "ss"
StringUtils.trimToEmpty(" d d dd ") = "d d dd"
StringUtils.trimToEmpty("dd ") = "dd"
StringUtils.trimToEmpty(" dd ") = "dd"

8. public static String strip(String str)
去掉字符串两端的空白符(whitespace) ,如果输入为 null 则返回 null
下面是示例(注意和 trim() 的区别):
StringUtils.strip(null) = null
StringUtils.strip("") = ""
StringUtils.strip(" ") = ""
StringUtils.strip(" \b \t \n \f \r ") = "\b"
StringUtils.strip(" \n\tss \b") = "ss \b"
StringUtils.strip(" d d dd ") = "d d dd"
StringUtils.strip("dd ") = "dd"
StringUtils.strip(" dd ") = "dd"

9. public static String stripToNull(String str)
去掉字符串两端的空白符(whitespace) ,如果变为 null 或"",则返回 null
下面是示例(注意和 trimToNull() 的区别):
StringUtils.stripToNull(null) = null
StringUtils.stripToNull("") = null
StringUtils.stripToNull(" ") = null
StringUtils.stripToNull(" \b \t \n \f \r ") = "\b"
StringUtils.stripToNull(" \n\tss \b") = "ss \b"
StringUtils.stripToNull(" d d dd ") = "d d dd"
StringUtils.stripToNull("dd ") = "dd"
StringUtils.stripToNull(" dd ") = "dd"

10. public static String stripToEmpty(String str)
去掉字符串两端的空白符(whitespace) ,如果变为 null 或"" ,则返回""
下面是示例(注意和 trimToEmpty() 的区别):
StringUtils.stripToNull(null) = ""
StringUtils.stripToNull("") = ""
StringUtils.stripToNull(" ") = ""
StringUtils.stripToNull(" \b \t \n \f \r ") = "\b"
StringUtils.stripToNull(" \n\tss \b") = "ss \b"
StringUtils.stripToNull(" d d dd ") = "d d dd"
StringUtils.stripToNull("dd ") = "dd"
StringUtils.stripToNull(" dd ") = "dd"

以下方法只介绍其功能,不再举例:

11. public static String strip(String str, String stripChars)
去掉 str 两端的在 stripChars 中的字符。
如果 str 为 null 或等于"" ,则返回它本身;
如果 stripChars 为 null 或"" ,则返回 strip(String str) 。

12. public static String stripStart(String str, String stripChars)
和11相似,去掉 str 前端的在 stripChars 中的字符。

13. public static String stripEnd(String str, String stripChars)
和11相似,去掉 str 末端的在 stripChars 中的字符。

14. public static String[] stripAll(String[] strs)
对字符串数组中的每个字符串进行 strip(String str) ,然后返回。
如果 strs 为 null 或 strs 长度为0,则返回 strs 本身

15. public static String[] stripAll(String[] strs, String stripChars)
对字符串数组中的每个字符串进行 strip(String str, String stripChars) ,然后返回。
如果 strs 为 null 或 strs 长度为0,则返回 strs 本身

16. public static boolean equals(String str1, String str2)
比较两个字符串是否相等,如果两个均为空则也认为相等。

17. public static boolean equalsIgnoreCase(String str1, String str2)
比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。

18. public static int indexOf(String str, char searchChar)
返回字符 searchChar 在字符串 str 中第一次出现的位置。
如果 searchChar 没有在 str 中出现则返回-1,
如果 str 为 null 或 "" ,则也返回-1

19. public static int indexOf(String str, char searchChar, int startPos)
返回字符 searchChar 从 startPos 开始在字符串 str 中第一次出现的位置。
如果从 startPos 开始 searchChar 没有在 str 中出现则返回-1,
如果 str 为 null 或 "" ,则也返回-1

20. public static int indexOf(String str, String searchStr)
返回字符串 searchStr 在字符串 str 中第一次出现的位置。
如果 str 为 null 或 searchStr 为 null 则返回-1,
如果 searchStr 为 "" ,且 str 为不为 null ,则返回0,
如果 searchStr 不在 str 中,则返回-1

21. public static int ordinalIndexOf(String str, String searchStr, int ordinal)
返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。
如果 str=null 或 searchStr=null 或 ordinal<=0 则返回-1
举例(*代表任意字符串):
StringUtils.ordinalIndexOf(null, *, *) = -1
StringUtils.ordinalIndexOf(*, null, *) = -1
StringUtils.ordinalIndexOf("", "", *) = 0
StringUtils.ordinalIndexOf("aabaabaa", "a", 1) = 0
StringUtils.ordinalIndexOf("aabaabaa", "a", 2) = 1
StringUtils.ordinalIndexOf("aabaabaa", "b", 1) = 2
StringUtils.ordinalIndexOf("aabaabaa", "b", 2) = 5
StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1
StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4
StringUtils.ordinalIndexOf("aabaabaa", "bc", 1) = -1
StringUtils.ordinalIndexOf("aabaabaa", "", 1) = 0
StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0

22. public static int indexOf(String str, String searchStr, int startPos)
返回字符串 searchStr 从 startPos 开始在字符串 str 中第一次出现的位置。
举例(*代表任意字符串):
StringUtils.indexOf(null, *, *) = -1
StringUtils.indexOf(*, null, *) = -1
StringUtils.indexOf("", "", 0) = 0
StringUtils.indexOf("aabaabaa", "a", 0) = 0
StringUtils.indexOf("aabaabaa", "b", 0) = 2
StringUtils.indexOf("aabaabaa", "ab", 0) = 1
StringUtils.indexOf("aabaabaa", "b", 3) = 5
StringUtils.indexOf("aabaabaa", "b", 9) = -1
StringUtils.indexOf("aabaabaa", "b", -1) = 2
StringUtils.indexOf("aabaabaa", "", 2) = 2
StringUtils.indexOf("abc", "", 9) = 3

23. public static int lastIndexOf(String str, char searchChar)
基本原理同18

24. public static int lastIndexOf(String str, char searchChar, int startPos)
基本原理同19

25. public static int lastIndexOf(String str, String searchStr)
基本原理同20

26. public static int lastIndexOf(String str, String searchStr, int startPos)
基本原理同22
另附:
String 的 split(String regex) 方法的用法
如果我们需要把某个字符串拆分为字符串数组,则通常用 split(String regex) 来实现。
例如:
Java代码 复制代码

1. String str = "aa,bb,cc,dd";
2. String[] strArray = str.split(",");
3. System.out.println(strArray.length);
4. for (int i = 0; i < strArray.length; i++) {
5. System.out.println(strArray[i]);
6. }

String str = "aa,bb,cc,dd"; String[] strArray = str.split(","); System.out.println(strArray.length); for (int i = 0; i < strArray.length; i++) { System.out.println(strArray[i]); }

 

结果为:
4
aa
bb
cc
dd
如果,
String str = "aa.bb.cc.dd";
String[] strArray = str.split(".");
则结果为:0
为什么结果不是我们所想的呢,原因是参数 String regex 是正则表达式 (regular expression) 而不是普通字符串,而 "." 在正则表达式中有特殊含义,表示匹配所有单个字符。如果要那样拆分,我们必须给 "." 进行转义,String[] strArray = str.split(".") 修改为 String[] strArray = str.split("\\.") 即可。

ZLMediaKit在Windows下启用WebRtc编译(64位) 准备软件 cmake-gui vs2017 已经编译好的windows版本openssl(下载地址) 当然,你完全可以自己按照openssl的官网教程自己编译windows版本的openssl libsrtp编译安装 首先,需要将下载好的openssl解压并添加到环境变量。如下图,将下图路径添加到环境变量 其次,下载libsrtp(下载地址) 下载后解压并新建build文件夹,如下图: 在合适位置新建文件夹放置install后的srtp文件,如"D:\develop20.. 阅读详情

相关推荐

5分钟搞定Nano-Banana图片编辑API对接:从Base64编码到生成图片全流程

本文详细介绍了如何快速对接Nano-Banana图片编辑API,基于gemini-2.5-flash-image-preview模型,从环境准备、Base64编码到API调用的全流程。通过实战示例和优化技巧,帮助开发者高效集成AI图片处理能力,提升产品竞争力。

dog123的博客 260

java commons库之一:lang(4)反射

前言 上一节介绍了日期文本方面的操作 这节来介绍下lang的反射机制相关的支持 反射相关的接口都在reflect包下TypeUtils类型相关util,用于对所有对象类型基本类型功能的封装MethodUtils对象方法相关utils invokeMethod:通过方面名称调用一个对象的方法,参数非常灵活class TestObject{ public void m(){ }

xyhshen的博客 2065

前端监控体系:从Sentry到LogRocket错误追踪

Sentry是一款开源的实时错误追踪系统,支持多种语言和框架,包括JavaScript、React、Vue等。它提供了丰富的错误信息、堆栈跟踪和环境数据,帮助开发者快速定位和解决问题。LogRocket是一款前端监控和用户行为分析工具,它提供了视频回放、性能监控、错误追踪等功能。与Sentry不同,LogRocket更注重用户行为的全面分析。前端监控体系是确保应用稳定性和用户体验的重要保障。通过集成Sentry和LogRocket等监控工具,开发者可以实时追踪应用中的错误和用户行为,快速定位和解决问题。

shejizuopin的博客 1315

缓存问题:缓存击穿

缓存击穿:同一个时刻,大量的请求访问一个热点key,热点key失效的瞬间,持续的大并发会直接请求数据库,就像在屏障上早开了一个洞。

qq_20171645的博客 258

告别Keil/IAR:在VSCode中用CMake+Clangd打造丝滑的STM32开发环境(附完整配置)

本文详细介绍了如何在VSCode中使用CMake和Clangd搭建高效的STM32开发环境,替代传统的Keil/IAR工具。通过完整的配置指南和快速开发技巧,帮助开发者实现轻量级、高度可定制的现代化开发流程,显著提升STM32项目的开发效率。

weixin_26843605的博客 166

别再只仿真原理图了!用ADS做微带功分器,版图仿真这一步才是关键

本文深入探讨了使用ADS进行微带功分器设计时版图仿真的重要性,指出原理图仿真与版图仿真的本质差异及其对性能的影响。通过详细分析版图效应、关键设置和优化策略,帮助工程师避免常见陷阱,提升设计效率和准确性。文章特别强调了版图仿真在确保微波电路性能中的关键作用。

weixin_42561476的博客 412

Gateway网关

搭建springcloud-alibaba-Gateway 父工程pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/

疯狂撸代码的奋青博客 291

S32K3的STCU2模块详解:从硬件FSM到MCAL配置,搞懂BIST在线测试全流程

本文深入解析S32K3系列MCU的STCU2模块,从硬件FSM架构到MCAL配置,详细讲解BIST在线测试全流程。通过分区的安全策略和实战代码示例,帮助开发者掌握汽车电子系统中的功能安全实现,提升系统可靠性和安全性。

weixin_42525328的博客 446

Apache -Common-lang包使用

1、Common-lang的下载点击打开链接 2、方法: ArrayUtils – 用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等; BitField – 用于操作位元,提供了一些方便而安全的方法; BooleanUtils – 用于操作和转换boolean或者Boolean及相应的数组; CharEncoding – 包含了Java环境支持的字符

Deep_Learning 5154

模电学习笔记(十二)——跨阻放大器

模电学习笔记(十二) 跨阻放大器 跨组运算放大器是将电流信号转换成为电压信号,电流到电压增益基于反馈电阻。 设计目标: 输入 输出 带宽 电源 0A 100uA 0V 7V 20kHz 15V -15V 1.计算R1的值(增益电阻器) 2.计算C1的值满足电路带宽 ...

tang11081023的博客 2万+

图像去模糊(二)——Richardson–Lucy算法

Richardson Lucy Algorithm(Richardson-Lucy算法详解及效果实例)

xueruhongchen的博客 3万+

commons-lang包中我们常用的类的作用

commons-lang包中对我们有用的类主要有:1.StringUtils 该类主要提供对字符串的操作,对null是安全的,主要提供了字符串查找,替换,分割,去空白,去掉非法字符等等操作2.ObjectUtils 主要是对null进行安全处理,可以设置为null时的默认返回值,比较相等时是调用对象的equals方法,因此需要对对象进行方法进行覆盖3.SystemUtils 主要获取一

黄刚的专栏 1919

从源码编译CesiumForUnreal

从源码编译CesiumForUnreal插件

专注GIS开发 5644

apache common Lang包StringUtils系列(一)

本文介绍的是lang包中StringUtils类的方法,是根据apache common lang包系列官网(http://commons.apache.org/proper/commons-lang/)上翻译过来的,留在此处仅供学习参考使用。 import org.apache.commons.lang3.StringUtils; 1 public static Stri

zuodongmei0921的博客 2951

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Apache common 包 StringUtils 使用详解

org.apache.commons.lang3.StringUtils.EMPTY   相当于“” 案例: user.setPassword("");//插入空格,将原有password数据不进行传递 user.setPassword(org.apache.commons.lang3.StringUtils.EMPTY);//与""含义相同 之所以这么使用,是因为有以下优势: 1.在以...

EastChilde的博客 3117

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

StringUtils.isEmpty用法

转载出处:http://blog.csdn.net/ocean20/article/details/6674077 StringUtils 方法的操作对象是Java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相应...

amyflower的博客 8万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

common-lang的StringUtils工具类说明

null 和 ""操作 判断是否Null 或者 “” System.out.println(StringUtils.isEmpty(null)); System.out.println(StringUtils.isNotEmpty(null)); 判断是否null 或者 “” 去空格 System.out.println(StringUtils.isBlank(" ")); Syste...

一只没有脚的鸟 1540

StringUtils在commons-lang3和commons-lang中的区别

最近经常需要对String做一些判断和处理,于是就用到了Apache提供的StringUtils这个工具类,用的时候发现有两个不同的版本,一个版本位于org.apache.commons.lang下面,另一个则位于org.apache.commons.lang3下面。查了一下资料,lang3是Apache Commons 团队发布的工具包,要求jdk版本在1.5以上,相对于lang来说完全支持jav

Hello World 6万+

StringUtils用法+StringUtils详细介绍

org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理,例如,如果输入为null则返回也是null等,具体可以查看源代码)。 除了构造器,Str

baidu_31071595的博客 1万+

StringUtils在commons-lang3和commons-lang中的区别,下载commons-lang3.jar包

下载地址:https://download.csdn.net/download/qq_38998213/11193418 1.isEmpty、isNotEmpty、isBlank、isNotBlank 先贴源码 //lang public static boolean isEmpty(String str) { return str == null || str...

ZhangJiqun&191cm&85kg 3357

StringUtils用法

 前言:在org.apache.commons包中提供了的一系列能简化一些编程过程中常见问题的共通函数和类,使程序员能把主要精力集中在构架,业务实现和优化而不是具体实现及验证上,一言以蔽之,它能使我们避免重复的发明车轮。org.apache.commons包的下载页面在:http://jakarta.apache.org/site/downloads/downloads_c

kinglino520的专栏 2412

commn-lang3包中字符串工具类StringUtils常用方法

一、起步 引入maven依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </depe...

pan199462的博客 1356

org.apache.commons.lang.StringUtils 提供的方法的用法与不同

导入StringUtils依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4<...

silangfeilang的博客 2万+

01-1,Common-Lang StringUtils

commons-lang StringUtils

XXT6666的博客 1209

Apache common 包 StringUtils 关于isEmpty与isBlank的使用区别

一、关于isEmpty与isBlank的使用区别 1. public static boolean isEmpty(String str) 判断某字符串是否为空,为空的标准是str==null或str.length()==0 下面是StringUtils判断是否为空的示例: StringUtils.isEmpty(null) = true StringUtils.isEmpty("") = tru...

第二颗大白菜 3328
上一篇: Facebook网站所使用的开源软件一览表
下一篇: java 调用Oracle 存储过程 Jdbc/Hibernate
木卫二号Coding
博客等级 码龄18年 263粉丝 228原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值