StringUtils常用方法

1.StringUtils简介

StringUtilsorg.apache.commons.lang包中的一个工具类,提供了130多个静态方法(static)操作String类型。并且StringUtils对于null是安全的(即如果输入参数String为null则不会抛出NullPointerException,而是做了相应处理。
使用时需要先添加maven依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

此处用的依赖版本是3.11,最新版本可以在maven中央仓库查询
https://mvnrepository.com/artifact/org.apache.commons/commons-lang3

2.StringUtils常用方法

1. public static boolean isEmpty(String str)

判断某字符串是否为空,为空的标准是str == null 或 str.length() == 0

  StringUtils.isEmpty(null);     //null,结果为true
  StringUtils.isEmpty("");       //""中什么也不写,结果为true
  StringUtils.isEmpty("  ");     //"   "中间是空格,结果为false
  StringUtils.isEmpty("aaa");    //正常字符串,结果为false
2. public static boolean isNotEmpty(String str)

判断某字符串是否非空,等于!isEmpty(String str)

  StringUtils.isNotEmpty(null);    //null结果为false
  StringUtils.isNotEmpty("");      //""中什么也不写,结果为false
  StringUtils.isNotEmpty("  ");    //"   "中间是空格,结果为true
  StringUtils.isNotEmpty("bob");   //正常字符串,结果为true
3. public static boolean isBlank(String str)

判断某字符串是否为空或长度为0或由空白符(whitespace)空格构成,与isEmpty区别就是 字符串内容是空格 返回值也是true

  StringUtils.isBlank(null);           //true
  StringUtils.isBlank("");             //true
  StringUtils.isBlank(" ");            //true
  StringUtils.isBlank("       ");      //true
  StringUtils.isBlank("\t \n \f \r");  //true
  StringUtils.isBlank("aaa");          //false
4. public static boolean isNotBlank(String str)

判断某字符串是否不为空且长度不为0且不由空白符(whitespace)构成,
等于!isBlank(String str)

5. public static String trim(String str)

用于删除字符串的头尾空白符

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)

去掉字符串两端的控制符(除去ASCII码中127号)和空格;
与trim区别在于:如果字符串去掉空白符或制表符之后,结果变为null或"",则返回null。

控制符:在ASCII码中,第0~31号及第127号(共33个)是控制字符或通讯专用字符,如:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通讯专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等。
空格:ASCII码的编号为32

7.public static String trimToEmpty(String str)

去掉字符串两端的控制符和空格;
与trim区别在于:如果字符串去掉空白符或制表符之后,结果变为null或"",则返回""。

8. public static boolean equals(String str1, String str2)

比较两个字符串是否相等,如果两个均为空则也认为相等。

StringUtils.equals(" ", " ");    //两个字符串都是相等数量空格。true
StringUtils.equals(" ", "     ");//两个字符串都是空格,但空格数量不等。false
StringUtils.equals(null,null);   //两个字符串都是null。true
StringUtils.equals(" ",null);    //一个字符串为空,一个字符串为null。false
9. public static boolean equalsIgnoreCase(String str1, String str2)

比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等(同equals方法)。

10. public static int indexOf(String str, char c)

返回字符c在字符串str中第一次出现的位置。(下标从0开始)
如果c没有在str中出现则返回-1。

11. public static int indexOf(String str, char c, int startPos)

返回字符c从startPos开始在字符串str中第一次出现的位置。(下标从0开始)
如果从startPos开始c没有在str中出现则返回-1,
如果str为null或"",则也返回-1

12. public static int indexOf(String str, String searchStr)

返回字符串searchStr在字符串str中第一次出现的位置。
如果str为null或searchStr为null则返回-1,
如果searchStr为"",且str为不为null,则返回0。

13. public static int IndexOf(String str, String searchStr, int startPos)

返回字符串searchStr从startPos开始在字符串str中第一次出现的位置。(下标从0开始)
如果 str=null 或 searchStr=null 则返回-1。

System.out.println(StringUtils.indexOf("aabb", null,1));  //-1
System.out.println(StringUtils.indexOf(null, "aa",1));    //-1
System.out.println(StringUtils.indexOf("aabbccdd", "cc",1));  //4
14. public static int ordinalIndexOf(String str, String searchStr, int ordinal)

返回字符串searchStr在字符串str中第ordinal次出现的位置。
如果str=null或searchStr=null或ordinal<=0则返回-1

15. public static int lastIndexOf(String str, char c)

字符c在字符串str中最后一次出现的下标(具体用法同indexOf方法)

16. public static boolean contains(String str, char searchChar)

判断字符串str中是否包含字符searchChar。
如果str为null或"",返回false;
如果searchChar不在str中,返回false。

17. public static boolean contains(String str, String searchStr)

判断字符串str中是否包含字符串searchStr。
如果searchChar不在str中,返回false。

	StringUtils.contains("", "");      //true
	StringUtils.contains("dfg", "");   //true
	StringUtils.contains("dfg", "d");  //true
18. public static boolean containsIgnoreCase(String str, String searchStr)

判断字符串str是否包含字符串searchStr,不区分大小写。

19. public static int indexOfAny(String str, Char … searchChar )

找出字符searchChars中的r任何字符第一次出现在字符串str中的位置。
如果字符数组中的字符都不在字符串中,则返回-1
如果字符串为null或"",则返回-1

StringUtils.indexOfAny("sdfdadad", "d", "a");    //1
20. public static String substring(String str, int startPos)

得到字符串str的子串。
如果startPos小于0,子串取逆序的前|startPos|位
如果str为null或"",则返回它本身

StringUtils.substring("aaabbbcccddd", 3);   //bbbcccddd
StringUtils.substring("aaabbbcccddd", -3);  //ddd
StringUtils.substring("", 3);				//
StringUtils.substring(null, 3);				//null
21. public static String substring(String str, int start, int end)

得到字符串str的子串。
如果str为null或"",则返回它本身

22.public static String[ ] split(String str)

把字符串拆分成一个字符串数组,用空格(whitespace)作为分隔符。
如果字符串为null,返回null
如果字符串为"",返回空数组{}

 // 打印结果为ab cd efg ,数组a为{ab,cd,ef}
        String[] arrs = StringUtils.split("ab cd efg");
        for (String a : arrs) {
            System.out.print(a+" ");
        }
23.public static String[ ] split(String str, char separatorChar)

把字符串拆分成一个字符串数组,用指定的字符separatorChar作为分隔符。(结果字符串数组把separatorChar丢掉)
如果字符串为null,返回null
如果字符串为"",返回空数组{}

  // 打印结果为aa bb cc
        String[] arrs02 = StringUtils.split("aaybbyccy",'y');
        for (String a : arrs02) {
            System.out.print(a+"");
        }
24. public static String[ ] split(String str, String separatorChars)

把字符串拆分成一个字符串数组,用指定的字符串separatorChars作为分隔符。
如果字符串str为null,返回null
如果字符串str为"",返回空数组{}
如果separatorChars为null,则默认为空白符

  // 打印结果为aa bb cc
        String[] arrs03 = StringUtils.split("aayybbyyccy","yy");
        for (String a : arrs03) {
            System.out.print(a+" ");
        }
25. public static String join(Object[ ] array)

把数组中的元素连接成一个字符串返回。

       // 打印结果:asdfsdw32e
       System.out.println(StringUtils.join('a', "sdfsd", "w32e"));
26. public static String join(Object[ ] array, char separator)

把数组中的元素连接成一个字符串返回,把分隔符separator也加上。

        // 打印结果:a bb ccc
        Object[] obj = {'a',"bb","ccc"};
        System.out.println(StringUtils.join(obj," "));
27. public static String replace(String text, String searchString, String replacement)

在字符串text中用replacement代替searchString,替换所有。

        // 结果bbbbbb
      StringUtils.replace("aaabbb", "a", "b");
        // 结果aaabbb;searchSting在字符串中不存在,则不替换
      StringUtils.replace("aaabbb", "f", "b");
28. public static String repeat(String str, int repeat)

重复字符串repeat次,组合成一个新串返回。
如果字符串str为null或"",则返回它本身
如果repeat小于0,则返回"".

 // 结果abcabcabc
 System.out.println(StringUtils.repeat("abc", 3));
29. public static String swapCase(String str)

把字符串中的字符大写转换为小写,小写转换为大写。

 // 结果AAABBBaaabbb
System.out.println(StringUtils.swapCase("aaabbbAAABBB"));
30. public static int countMatches(String str, String sub)

计算字符串sub在字符串str中出现的次数。
如果str为null或"",则返回0

 // 结果 2
System.out.println(StringUtils.countMatches("aaaa", "aa"));
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值