Class HexKit

java.lang.Object
org.aoju.bus.core.toolkit.HexKit

public class HexKit extends Object
十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(其中:A~F即10~15) 例如十进制数57,在二进制写作111001,在16进制写作39 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20是十进制的32,而不是十进制的20
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • HexKit

      public HexKit()
  • Method Details

    • isHexNumber

      public static boolean isHexNumber(String value)
      判断给定字符串是否为16进制数 如果是,需要使用对应数字类型对象的decode方法解码 例如:Integer.decode方法解码int类型的16进制数字
      Parameters:
      value - 值
      Returns:
      是否为16进制
    • encodeHex

      public static char[] encodeHex(byte[] data)
      将字节数组转换为十六进制字符数组
      Parameters:
      data - byte[]
      Returns:
      十六进制char[]
    • encodeHex

      public static char[] encodeHex(String text, Charset charset)
      将字节数组转换为十六进制字符数组
      Parameters:
      text - 字符串
      charset - 编码
      Returns:
      十六进制char[]
    • encodeHex

      public static char[] encodeHex(byte[] data, boolean toLowerCase)
      将字节数组转换为十六进制字符数组
      Parameters:
      data - byte[]
      toLowerCase - true 传换成小写格式 , false 传换成大写格式
      Returns:
      十六进制char[]
    • encodeHexString

      public static String encodeHexString(byte[] data)
      将字节数组转换为十六进制字符串
      Parameters:
      data - byte[]
      Returns:
      十六进制String
    • encodeHexString

      public static String encodeHexString(String data, Charset charset)
      将符串转换为十六进制字符串,结果为小写
      Parameters:
      data - 被编码的字符串
      charset - 编码
      Returns:
      十六进制String
    • encodeHexString

      public static String encodeHexString(String data)
      将符串转换为十六进制字符串,结果为小写,默认编码是UTF-8
      Parameters:
      data - 被编码的字符串
      Returns:
      十六进制String
    • encodeHexString

      public static String encodeHexString(byte[] data, boolean toLowerCase)
      将字节数组转换为十六进制字符串
      Parameters:
      data - byte[]
      toLowerCase - true 传换成小写格式 , false 传换成大写格式
      Returns:
      十六进制String
    • decodeHexString

      public static String decodeHexString(String text)
      将十六进制字符数组转换为字符串,默认编码UTF-8
      Parameters:
      text - 十六进制String
      Returns:
      字符串
    • decodeHexString

      public static String decodeHexString(String text, Charset charset)
      将十六进制字符数组转换为字符串
      Parameters:
      text - 十六进制String
      charset - 编码
      Returns:
      字符串
    • decodeHexString

      public static String decodeHexString(char[] text, Charset charset)
      将十六进制字符数组转换为字符串
      Parameters:
      text - 十六进制char[]
      charset - 编码
      Returns:
      字符串
    • decodeHex

      public static byte[] decodeHex(char[] text)
      将十六进制字符数组转换为字节数组
      Parameters:
      text - 十六进制char[]
      Returns:
      byte[]
      Throws:
      RuntimeException - 如果源十六进制字符数组是一个奇怪的长度,将抛出运行时异常
    • decodeHex

      public static byte[] decodeHex(CharSequence hexData)
      将十六进制字符数组转换为字节数组
      Parameters:
      hexData - 十六进制字符串
      Returns:
      byte[]
      Throws:
      RuntimeException - 如果源十六进制字符数组是一个奇怪的长度,将抛出运行时异常
    • encodeColor

      public static String encodeColor(Color color)
      Color编码为Hex形式
      Parameters:
      color - Color
      Returns:
      Hex字符串
    • encodeColor

      public static String encodeColor(Color color, String prefix)
      Color编码为Hex形式
      Parameters:
      color - Color
      prefix - 前缀字符串,可以是#、0x等
      Returns:
      Hex字符串
    • decodeColor

      public static Color decodeColor(String hexColor)
      将Hex颜色值转为
      Parameters:
      hexColor - 16进制颜色值,可以以#开头,也可以用0x开头
      Returns:
      Color
    • toUnicodeHex

      public static String toUnicodeHex(int value)
      将指定int值转换为Unicode字符串形式,常用于特殊字符(例如汉字)转Unicode形式 转换的字符串如果u后不足4位,则前面用0填充,例如:
       '你' = 你
       
      Parameters:
      value - int值,也可以是char
      Returns:
      Unicode表现形式
    • toUnicodeHex

      public static String toUnicodeHex(char ch)
      将指定char值转换为Unicode字符串形式,常用于特殊字符(例如汉字)转Unicode形式 转换的字符串如果u后不足4位,则前面用0填充,例如:
       '你' = 你
       
      Parameters:
      ch - char值
      Returns:
      Unicode表现形式
    • toBigInteger

      public static BigInteger toBigInteger(String hexStr)
      Hex(16进制)字符串转为BigInteger
      Parameters:
      hexStr - Hex(16进制字符串)
      Returns:
      BigInteger
    • format

      public static String format(String hexStr)
      格式化Hex字符串,结果为每2位加一个空格,类似于:
           e8 8c 67 03 80 cb 22 00 95 26 8f
       
      Parameters:
      hexStr - Hex字符串
      Returns:
      格式化后的字符串
    • appendHex

      public static void appendHex(StringBuilder builder, byte b, boolean toLowerCase)
      将byte值转为16进制并添加到StringBuilder
      Parameters:
      builder - StringBuilder
      b - byte
      toLowerCase - 是否使用小写