Class StringKit


public class StringKit extends CharsBacker
字符串工具类
Since:
Java 17+
Author:
Kimi Liu
See Also:
  • Constructor Details

    • StringKit

      public StringKit()
  • Method Details

    • trim

      public static void trim(String[] args)
      给定字符串数组全部做去首尾空格
      Parameters:
      args - 字符串数组
    • toString

      public static String toString(Object obj)
      将对象转为字符串
       1、Byte数组和ByteBuffer会被转换为对应字符串的数组
       2、对象数组会调用Arrays.toString方法
       
      Parameters:
      obj - 对象
      Returns:
      字符串
    • toString

      public static String toString(Object obj, Charset charset)
      将对象转为字符串
               1、Byte数组和ByteBuffer会被转换为对应字符串的数组
               2、char[]会直接构造String
               3、对象数组会调用Arrays.toString方法
       
      Parameters:
      obj - 对象
      charset - 字符集
      Returns:
      字符串
    • toString

      public static String toString(byte[] data, Charset charset)
      解码字节码
      Parameters:
      data - 字符串
      charset - 字符集,如果此字段为空,则解码的结果取决于平台
      Returns:
      解码后的字符串
    • toString

      public static String toString(Byte[] data, Charset charset)
      解码字节码
      Parameters:
      data - 字符串
      charset - 字符集,如果此字段为空,则解码的结果取决于平台
      Returns:
      解码后的字符串
    • toString

      public static String toString(ByteBuffer data, Charset charset)
      将编码的byteBuffer数据转换为字符串
      Parameters:
      data - 数据
      charset - 字符集,如果为空使用当前系统字符集
      Returns:
      字符串
    • stringFast

      public static String stringFast(char[] value)
      JDK8中,通过String(char[] value, boolean share)这个内部构造创建String对象。 此函数通过传入char[],实现zero-copy的String创建,效率很高。但是要求传入的char[]不可以在其他地方修改。
      Parameters:
      value - char[]值,注意这个数组不可修改!!
      Returns:
      String
    • builder

      public static StringBuilder builder()
      创建StringBuilder对象
      Returns:
      StringBuilder对象
    • builder

      public static StringBuilder builder(int capacity)
      创建StringBuilder对象
      Parameters:
      capacity - 初始大小
      Returns:
      StringBuilder对象
    • getReader

      public static StringReader getReader(CharSequence text)
      获得StringReader
      Parameters:
      text - 字符串
      Returns:
      StringReader
    • getWriter

      public static StringWriter getWriter()
      获得StringWriter
      Returns:
      StringWriter
    • reverse

      public static String reverse(String text)
      反转字符串 例如:abcd = dcba
      Parameters:
      text - 被反转的字符串
      Returns:
      反转后的字符串
    • fillBefore

      public static String fillBefore(String text, char filledChar, int len)
      将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串 字符填充于字符串前
      Parameters:
      text - 被填充的字符串
      filledChar - 填充的字符
      len - 填充长度
      Returns:
      填充后的字符串
    • fillAfter

      public static String fillAfter(String text, char filledChar, int len)
      将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串 字符填充于字符串后
      Parameters:
      text - 被填充的字符串
      filledChar - 填充的字符
      len - 填充长度
      Returns:
      填充后的字符串
    • fill

      public static String fill(String text, char filledChar, int len, boolean isPre)
      将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
      Parameters:
      text - 被填充的字符串
      filledChar - 填充的字符
      len - 填充长度
      isPre - 是否填充在前
      Returns:
      填充后的字符串
    • fill

      public static String fill(int count, char charVal)
      输出指定长度字符
      Parameters:
      count - 长度
      charVal - 字符
      Returns:
      填充后的字符串
    • fill

      public static String fill(int count, String strVal)
      输出指定长度字符
      Parameters:
      count - 长度
      strVal - 字符
      Returns:
      填充后的字符串
    • similar

      public static double similar(String str1, String str2)
      计算两个字符串的相似度
      Parameters:
      str1 - 字符串1
      str2 - 字符串2
      Returns:
      相似度
    • similar

      public static String similar(String str1, String str2, int scale)
      计算两个字符串的相似度百分比
      Parameters:
      str1 - 字符串1
      str2 - 字符串2
      scale - 相似度
      Returns:
      相似度百分比
    • format

      public static String format(CharSequence template, Map<?,?> map)
      格式化文本,使用 {varName} 占位 map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) = aValue and bValue
      Parameters:
      template - 文本模板,被替换的部分用 {data} 表示
      map - 参数值对
      Returns:
      格式化后的文本
    • format

      public static String format(CharSequence template, Map<?,?> map, boolean ignoreNull)
      格式化文本,使用 {varName} 占位 map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) = aValue and bValue
      Parameters:
      template - 文本模板,被替换的部分用 {data} 表示
      map - 参数值对
      ignoreNull - 是否忽略 null 值,忽略则 null 值对应的变量不被替换,否则替换为""
      Returns:
      格式化后的文本
    • hasText

      public static boolean hasText(String text)
      检查给定的String是否包含实际的文本。 更具体地说,如果String不是null, 那么这个方法返回true,它的长度大于0,并且至少包含一个非空白字符
      Parameters:
      text - 要检查的String(可能是null)
      Returns:
      如果String不是null,那么它的长度大于0,并且不包含空格
    • build

      public static String build(Object original, String middle, int prefixLength)
      构建新的字符串
      Parameters:
      original - 原始对象
      middle - 中间隐藏信息
      prefixLength - 前边信息长度
      Returns:
      构建后的新字符串
    • capitalize

      public static String capitalize(String text)
      Character.toTitleCase(int) 将第一个字符更改为标题大小写.其他字符没有改变
       StringKit.capitalize(null)  = null
       StringKit.capitalize("")    = ""
       StringKit.capitalize("cat") = "Cat"
       StringKit.capitalize("cAt") = "CAt"
       StringKit.capitalize("'cat'") = "'cat'"
       
      Parameters:
      text - 要大写的字符串可以为空
      Returns:
      大写字符串,null如果输入为空字符串
    • unCapitalize

      public static String unCapitalize(String text)
      取消字符串的大小写,将第一个字符改为小写。其他字符没有改变
       StringKit.uncapitalize(null)  = null
       StringKit.uncapitalize("")    = ""
       StringKit.uncapitalize("cat") = "cat"
       StringKit.uncapitalize("Cat") = "cat"
       StringKit.uncapitalize("CAT") = "cAT"
       
      Parameters:
      text - 要取消大写的字符串可以为空
      Returns:
      未大写的字符串,null如果输入为空字符串