Class StringUtils

java.lang.Object
icu.easyj.core.util.StringUtils

public abstract class StringUtils extends Object
字符串工具类
Author:
wangliang181230
  • Field Details

    • CASE_DIFF

      public static final byte CASE_DIFF
      大小写字符的差值
      See Also:
  • Constructor Details

    • StringUtils

      public StringUtils()
  • Method Details

    • getValue

      public static Object getValue(@NonNull CharSequence str)
      获取String的value属性值

      部分场景下,我们获取字符串的char数组,只是为了校验字符串,并没有任何修改、删除操作。
      但由于 String.toCharArray() 方法会复制一次字符数组,导致无谓的性能损耗。
      所以,开发了此方法用于提升性能。

      Parameters:
      str - 字符串
      Returns:
      java8返回char[]、java9及以上返回byte[]
      Throws:
      IllegalArgumentException - str为空时,抛出该异常
      See Also:
    • getCoder

      public static byte getCoder(@NonNull CharSequence str)
      获取String的coder属性值
      Parameters:
      str - 字符串
      Returns:
      字符编码的标识符(值域:0=LATIN1 | 1=UTF16)
      Throws:
      IllegalArgumentException - str为空时,抛出该异常
    • isEmpty

      public static boolean isEmpty(CharSequence cs)
      字符串是否为空
      Parameters:
      cs - 字符串
      Returns:
      是否为空
    • isNotEmpty

      public static boolean isNotEmpty(CharSequence cs)
      字符串是否不为空
      Parameters:
      cs - 字符串
      Returns:
      是否不为空
    • isBlank

      public static boolean isBlank(CharSequence cs)
      字符串是否为空白
      Parameters:
      cs - 字符串
      Returns:
      是否为空白
    • isNotBlank

      public static boolean isNotBlank(CharSequence cs)
      字符串是否不为空白
      Parameters:
      cs - 字符串
      Returns:
      是否不为空白
    • isAll

      public static boolean isAll(String str, char targetChar)
      判断是否全部由指定字符组成的字符串
      Parameters:
      str - 字符串
      targetChar - 指定字符
      Returns:
      true=全为0、false=为null或不全为0
    • isAllZero

      public static boolean isAllZero(String str)
      判断是否全部由数字 '0' 组成的字符串
      Parameters:
      str - 字符串
      Returns:
      true=全为0、false=为null或不全为0
    • contains

      public static boolean contains(CharSequence str, char targetChar)
      判断字符串是否包含目标字符
      Parameters:
      str - 字符串
      targetChar - 目标字符
      Returns:
      true=包含 | false=不包含
    • contains

      public static boolean contains(char[] chars, char targetChar)
      判断字符数组是否包含目标字符
      Parameters:
      chars - 字符数组
      targetChar - 目标字符
      Returns:
      true=包含 | false=不包含
    • equals

      public static boolean equals(CharSequence cs1, CharSequence cs2)
      判断字符串是否相等
      Parameters:
      cs1 - 字符串1
      cs2 - 字符串2
      Returns:
      是否相等
    • defaultIfEmpty

      public static <T extends CharSequence> T defaultIfEmpty(T cs, T defaultValue)
      如果为空字符串,则取默认值
      Type Parameters:
      T - 字符串类型
      Parameters:
      cs - 字符串
      defaultValue - 默认值
      Returns:
      字符串或默认值
    • defaultIfEmpty

      public static <T extends CharSequence> T defaultIfEmpty(T cs, Supplier<T> defaultValueSupplier)
      如果为空字符串,则执行supplier生成新的值
      Type Parameters:
      T - 字符串类型
      Parameters:
      cs - 字符串
      defaultValueSupplier - 默认值提供者
      Returns:
      入参字符串或生成的默认值
    • defaultIfBlank

      public static <T extends CharSequence> T defaultIfBlank(T cs, T defaultValue)
      如果为空白字符串,则取默认值
      Type Parameters:
      T - 字符串类型
      Parameters:
      cs - 字符串
      defaultValue - 默认值
      Returns:
      字符串或默认值
    • defaultIfBlank

      public static <T extends CharSequence> T defaultIfBlank(T cs, Supplier<T> defaultValueSupplier)
      如果为空白字符串,则执行supplier生成新的值
      Type Parameters:
      T - 字符串类型
      Parameters:
      cs - 字符串
      defaultValueSupplier - 默认值提供者
      Returns:
      入参字符串或生成的默认值
    • isChinese

      public static boolean isChinese(char c)
      判断是否为中文字符
      Parameters:
      c - 字符
      Returns:
      是否为中文字符
    • chineseLength

      public static int chineseLength(CharSequence cs)
      计算字符串长度,中文计2个字符
      Parameters:
      cs - 字符串
      Returns:
      strLength 字符串
    • findNotEmptyOne

      @Nullable public static String findNotEmptyOne(String... strArr)
      查找一个不为null或空字符串的字符串
      Parameters:
      strArr - 字符串数组
      Returns:
      返回找到的字符串 或 null
    • findNotBlankOne

      @Nullable public static String findNotBlankOne(String... strArr)
      查找一个不为null或空白字符串的字符串
      Parameters:
      strArr - 字符串数组
      Returns:
      返回找到的字符串 或 null
    • count

      public static int count(@NonNull String str, char targetChar)
      统计字符串中包含的目标字符数量
      Parameters:
      str - 字符串
      targetChar - 需统计的字符
      Returns:
      字符数量
    • count

      public static int count(@NonNull char[] chars, char targetChar)
      统计字符数组中包含的目标字符数量
      Parameters:
      chars - 字符数组
      targetChar - 需统计的字符
      Returns:
      字符数量
    • indexOf

      public static int indexOf(String str, char targetChar, int n)
      查找第n个目标字符在字符串的索引值
      Parameters:
      str - 字符串
      targetChar - 目标字符
      n - 第 n 个目标字符,n必须大于0
      Returns:
      index 字符索引,返回-1表示字符串中没有目标字符,返回-2表示字符串中包含的目标字符少于n个
    • remove

      public static String remove(@NonNull String str, char toBeRemovedChar)
      从字符串中移除对应的字符
      Parameters:
      str - 字符串
      toBeRemovedChar - 需移除字符
      Returns:
      新的字符串
    • trim

      public static String trim(@NonNull String str, char cutChar)
      裁剪掉两边的某个字符或空字符
      Parameters:
      str - 字符串
      cutChar - 需裁剪掉的字符
      Returns:
      裁剪后的字符串
    • trimStart

      public static String trimStart(@NonNull String str, char cutChar)
      裁剪掉两边的某个字符或空字符
      Parameters:
      str - 字符串
      cutChar - 需裁剪掉的字符
      Returns:
      裁剪后的字符串
    • trimEnd

      public static String trimEnd(@NonNull String str, char cutChar)
      裁剪掉两边的某个字符或空字符
      Parameters:
      str - 字符串
      cutChar - 需裁剪掉的字符
      Returns:
      裁剪后的字符串
    • join

      public static String join(char c, char separator, int n)
      生成 N个源字符 由 分隔符隔开而组成的字符串

      格式如:?,?,?,?(不带空格)

      Parameters:
      c - 源字符
      separator - 分隔符
      n - 源字符数量
      Returns:
      生成的字符串
      Throws:
      IllegalArgumentException - n小于0
      See Also:
    • joinWithSpace

      public static String joinWithSpace(char c, char separator, int n)
      生成 N个源字符 由 分隔符隔开而组成的字符串

      格式如:?, ?, ?, ?(带空格)

      Parameters:
      c - 源字符
      separator - 分隔符
      n - 源字符数量
      Returns:
      生成的字符串
      Throws:
      IllegalArgumentException - n小于0
      See Also:
    • toCharArray

      public static char[] toCharArray(@NonNull CharSequence str)
      获取字符数组
      Parameters:
      str - 字符串
      Returns:
      字符数组
    • toString

      @NonNull public static String toString(Object obj)
      将对象转换为字符串
      Parameters:
      obj - 任意类型的对象
      Returns:
      str 转换后的字符串