StringUtils工具类的常用方法

工作中大牛写代码常用StringUtils工具类来操作字符串,常用方法整理如下:

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

        除了构造器,StringUtils 中一共有130多个方法,并且都是 static 的,所以我们可以这样调用StringUtils.xxx() 。

下面分别对一些常用方法做简要介绍:

  • isEmpty(String str) 是否为空,空格字符为false
  • isNotEmpty(String str) 是否为非空,空格字符为true
  • isBlank(String str) 是否为空,空格字符为true
  • isNotBlank(String str) 是否为非空,空格字符为false
  • trim(String str)去除字符串两端的控制符,空字符串、null 返回 null
  • trimToEmpty(String str) 去除字符串两端的控制符,空字符串、null 返回""
  • stripToNull(String str) 去除字符串两端的空白符,空字符串、null 返回null
  • stripToEmpty(String str) 去除字符串两端的空白符,空字符串、null 返回""
  • strip(String str, String stripChars) 去掉str两端的在stripChars中的字符

StringUtils.strip("000000134_76539000","0")="134_76539"

  • stripStart (String str,String stripChars) 去除str 前端在stripChars中的字符
  • stripEnd (String str,String stripChars) 去除str 后端在stripChars中的字符
  • equals(String str1,String str2) 比较两个字符串是否相等,如果两个均为空则认为相等
  • indexOf(String str,char searchChar) 返回searchChar 在字符串中第一次出现的位置,如果没找到则返回 -1,如果str 为null 或者 "",也返回-1
  • indexOf(String str,char searchChar,int startPos) 返回字符searchChar从startPos开始在字符串str中第一次出现的位置。
  • contains(String str,char searchChar) str中是否包含字符searchChar,str为null 或者 searchChar为null,返回false 。

StringUtils.contains("", "")  = true 

StringUtils.contains("dfg", "")  = true

  • containsIgnoreCase(String str,String searchStr) str中是否包含字符searchChar,不区分大小写
  •  int indexOfAny(String str, char[] searchChars) 找出字符数组searchChars中的字符第一次出现在字符串str中的位置。 如果字符数组中的字符都不在字符串中,则返回-1 ,如果字符串为null或"",则返回-1 
  • subString(String str,int start) 从start 开始,包含start 那个字符,得到字符串str 的子串,如果start为负数,则从后面开始数起。如果str 为null 或者 "" 则返回其本身
  • subStringBefore(String str,String separator) 得到字符串separator第一次出现前的子串。不包含那个字符,如果str 为null 或者 "" 则返回其本身。
  • subStringAfter(String str,String separator) 得到字符串separator第一次出现后的子串,不包含那个字符,如果 str 为null,或者"",则返回其本身
  • subString(String str,int start,int end) 同上
  • left(String str,int len) 得到字符串str从左边数len长度的子串,如果str 为null 或者 "",则返回其本身,如果len小于0,则返回""
  • right(String str,int len)得到字符串str从右边数len长度的子串
  • mid(String str,int pos,int len) 得到字符串str从pos开始len长度的子串,pos小于0,则设为0。
  • split(String str) 把字符串拆分成一个字符串数组,用空白符 作为分隔符,字符串为null 返回null,字符串为"",返回空数组{}
  • split(String str,char c) 按照 char c 拆分字符串
  • join(Object[] arrey)把数组中的元素连接成一个字符串返回
  • join(Object[] arrey,char c) 把数组中的元素拼接成一个字符串返回,把分隔符 c 也带上
  • deleteWhitespace(String str) 删除字符串中的所有空白符,包括转义字符
  • removeStart(String str,String remove) 如果字符串str是以remove开始,则去掉这个开始,然后返回,否则返回原来的串
  • removeEnd(String str,String remove) 如果字符串str是以字符串remove结尾,则去掉这个结尾,然后返回,否则返回原来的串。
  • remove(String str,char remove) 去掉字符串str中所有包含remove的部分,然后返回
  • replace(String str,String reql,String with) 在字符串text中用with代替repl,替换所有
  • replaceChars(String str,char old,char new) 在字符串中 new 字符代替 old 字符
  • replaceChars(String str, String searchChars, String replaceChars) 这个有点特别,先看下面三个例子

StringUtils.replaceChars("asssdf","s","yyy"))    =    "ayyydf" 

StringUtils.replaceChars("asdf","sd","y"))        = "ayf" 

StringUtils.replaceChars("assssddddf","sd","y"))= "ayyyyf"

解释:为什么会出现上面这样的结果呢?原来这个置换规则是这样的,他是拿searchChars的index,去replaceChars找相应的index然后替换掉,怎么说呢?比如说第一个例子 s 的index 是0,找到yyy相对应的index为0的字符是y。第二个例子 's' 的index是0,'d'的index是1, 字符's' 可以找到对应index为0的 'y',d就找不到index为'1'的的字符了,所以就直接过滤掉了,听明白了吗?

  • overlay(String str,String new,int start,int end) 用字符串new 覆盖字符串str从start 到 end 之间的串
  • chop(String str) 去掉字符串的最后一个字符,比如/r/n
  • repeat(String str,int repart) 重复字符串repeat次
  • rightPad(String str,int size,String padStr) size长度的字符串,如果不够用padStr补齐
  • leftPad(String str,int size,String padStr)同上
  • center(String str,int size)产生一个字符串,长度等于size,str位于新串的中心
  • swapCase(String str) 字符串中的大写转小写,小写转换为大写

转自:https://www.cnblogs.com/jmcui/p/7208383.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值