1.CharSequence 和 String 的区别

  • CharSequence 是一个接口,用于表示有序的字符集合,并提供了一些基本的操作方法
  • CharSequence 与 String 都能用于定义字符串,但 CharSequence 的值是可读可写序列,而 String 的值是只读序列
  • String、StringBuffer、StringBuilder 都实现了 CharSequence 这个接口

【注意点:CharSequence 是一个接口,不能创建实例对象,但可以直接进行赋值来创建一个实例对象】

【原因:String 类型的数据存放在常量池,通过赋值创建的是 String 类而不是 CharSequence 这个接口,是在 String 创建完成之后吧这个字符串传递给了 CharSequence 类,所以直接赋值不会报错】

CharSequence cs=new CharSequence(“Java”)  // 报错
CharSequence str = “Java”;  // 成功

2.检查字符串是否为空

  • StringUtils.isBlank(charSequence str) :判断字符串是否为空或 null【boolean】
  • StringUtils.isNotBlank(charSequence str):判断字符串是否为非空或非 null 【boolean】
StringUtils.isBlank("Java");  // false
StringUtils.isNotBlank("Java");  // true
  • StringUtils.isEmpty(CharSequence str):判断字符串是否为空或 null【boolean】
  • StringUtils.isNotEmpty(CharSequence str):判断字符串是否为非空或非 null 【boolean】

【两者区别:isBlank() 会吧空格当做空来处理,而 isEmpty() 会吧空格当做非空来处理】

3.去除前后空格

  • StringUtils.trim(CharSequence str);【boolean】
StringUtils.trim(null) = null;  // 输入的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";

4.删除所有空格,包括中间

  • String deleteWhitespace(String str);【String】
StringUtils.deleteWhitespace("   a  b  "); // ab

5.去除空格额外用法

  • StringUtils.trimToEmpty(String str);先取出空格,如果为 null 返回空字符串【String】
  • StringUtils.trimToNull(String str);先取出空格,如果为 null,返回 null【String】
StringUtils.trimToEmpty(null); // ""
StringUtils.trimToNull(null); // null

6.比较两个字符串是否相等

  • StringUtils.equalsIgonreCase(String str1,String str2);【boolean】

当其中一个为 null 的时候也不会报错

String str1 = null;
String str2 = "";
// System.out.println(str1.equals(str2));  // 报空指针错误
System.out.println(StringUtils.equals(str1,str2)); // false。不会报错

// 如果两个字符串都是空字符串则认为相等。

7.字符串倒转

  • StringUtils.stringreverse(String str);【String】
StringUtils.swapCase("I am J-A*v a"); 返回结果:i AM j-a*V A

8.首字母大小写转换

  • StringUtils.capitalize(String str);首字母大写【String】
  • StringUtils.uncapitalize(String str);首字母小写【String】
StringUtils.capitalize("adb"); // Abc
StringUtils.capitalize("Abc"); // abc

9.字母转换大小写

  • StringUtils.upperCase(String str);转大写【String】
  • StringUtils.lowerCase(String str);转小写【String】
  • StringUtils.swapCase(String str);大小写互换【String】
StringUtils.upperCase("abc"); // ABC
StringUtils.lowerCase("ABC"); // abc
StringUtils.lowerCase("Abc"); // aBC

10.判断是否全是大写或小写

  • StingUtils.isAllUpperCase(String str);是否是全大写【boolean】
  • StringUtils.isAllLowerCase(String str);是否是全小写【boolean】

注意:空或者是空白符均为 false

StringUtils.isAllUperCase("ABC"); // true
StringUtils.isAllLowerCase("abc"); // true

11.移除字符或字符串

  • StringUtils.remove(String str,char remove);移除单个字符【String】
  • StringUtils.remove(String str,String remove);移除字符串【String】
StringUtils.remove("abc","b"); // ac
StringUtils.remove("mahaonan","ma"); // haonan

12.去掉前后匹配的符号

  • StringUtils.strip(String str,String character);【String】
StringUtils.strip("[abcdef]","[]"); // abcdef

13.截取字符串

  • StringUtils.substring(String str,int start);从指定下标位置开始截取,如果为负数则从右开始到指定数值截取【String】
  • StringUtils.substring(String str,int start,int end);指定开始和结束位置截取【String】包前不包后
  • StringUtils.substringAfter(String str,String sub);从分隔符第一次出现的位置向后截取【String】
  • StringUtils.substringBefore(String str,String sub);从分隔符第一次出现的位置向前截取【String】
  • StringUtils.substringAfterLast(String str,String sub);从分隔符最后一次出现的位置向后截取【String】
  • StringUtils.substringBeforeLast(String str,String sub);从分隔符最后一次出现的位置向前截取【String】

results matching ""

    No results matching ""