Class HexUtil

java.lang.Object
com.luna.common.text.HexUtil

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

参考:https://my.oschina.net/xinxingegeya/blog/287476

Author:
Looly
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    appendHex(StringBuilder builder, byte b, boolean toLowerCase)
    将byte值转为16进制并添加到StringBuilder
    static Color
    decodeColor(String hexColor)
    将Hex颜色值转为
    static byte[]
    decodeHex(char[] hexData)
    将十六进制字符数组转换为字节数组
    static byte[]
    将十六进制字符数组转换为字节数组
    static byte[]
    decodeHex(String hexStr)
    将十六进制字符串解码为byte[]
    static String
    decodeHexStr(char[] hexData, Charset charset)
    将十六进制字符数组转换为字符串
    static String
    将十六进制字符数组转换为字符串,默认编码UTF-8
    static String
    decodeHexStr(String hexStr, Charset charset)
    将十六进制字符数组转换为字符串
    static String
    Color编码为Hex形式
    static String
    encodeColor(Color color, String prefix)
    Color编码为Hex形式
    static char[]
    encodeHex(byte[] data)
    将字节数组转换为十六进制字符数组
    static char[]
    encodeHex(byte[] data, boolean toLowerCase)
    将字节数组转换为十六进制字符数组
    static char[]
    encodeHex(String str, Charset charset)
    将字节数组转换为十六进制字符数组
    static String
    encodeHexStr(byte[] data)
    将字节数组转换为十六进制字符串
    static String
    encodeHexStr(byte[] data, boolean toLowerCase)
    将字节数组转换为十六进制字符串
    static String
    将字符串转换为十六进制字符串,结果为小写,默认编码是UTF-8
    static String
    encodeHexStr(String data, Charset charset)
    将字符串转换为十六进制字符串,结果为小写
    static String
    format(String hexStr)
    格式化Hex字符串,结果为每2位加一个空格,类似于:
    static int
    16进制字符串转为int
    static long
    16进制字符串转为long
    static boolean
    判断给定字符串是否为16进制数
    如果是,需要使用对应数字类型对象的decode方法解码
    例如:Integer.decode方法解码int类型的16进制数字
    static BigInteger
    Hex(16进制)字符串转为BigInteger
    static String
    toHex(int value)
    转为16进制字符串
    static String
    toHex(long value)
    转为16进制字符串
    static String
    toUnicodeHex(char ch)
    将指定char值转换为Unicode字符串形式,常用于特殊字符(例如汉字)转Unicode形式
    转换的字符串如果u后不足4位,则前面用0填充,例如:
    static String
    toUnicodeHex(int value)
    将指定int值转换为Unicode字符串形式,常用于特殊字符(例如汉字)转Unicode形式
    转换的字符串如果u后不足4位,则前面用0填充,例如:

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • HexUtil

      public HexUtil()
  • 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 str, Charset charset)
      将字节数组转换为十六进制字符数组
      Parameters:
      str - 字符串
      charset - 编码
      Returns:
      十六进制char[]
    • encodeHex

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

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

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

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

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

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

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

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

      public static byte[] decodeHex(String hexStr)
      将十六进制字符串解码为byte[]
      Parameters:
      hexStr - 十六进制String
      Returns:
      byte[]
    • decodeHex

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

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

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

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

      public static Color decodeColor(String hexColor)
      将Hex颜色值转为
      Parameters:
      hexColor - 16进制颜色值,可以以#开头,也可以用0x开头
      Returns:
      Color
      Since:
      3.0.8
    • 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表现形式
      Since:
      4.0.1
    • toHex

      public static String toHex(int value)
      转为16进制字符串
      Parameters:
      value - int值
      Returns:
      16进制字符串
      Since:
      4.4.1
    • hexToInt

      public static int hexToInt(String value)
      16进制字符串转为int
      Parameters:
      value - 16进制字符串
      Returns:
      16进制字符串int值
      Since:
      5.7.4
    • toHex

      public static String toHex(long value)
      转为16进制字符串
      Parameters:
      value - int值
      Returns:
      16进制字符串
      Since:
      4.4.1
    • hexToLong

      public static long hexToLong(String value)
      16进制字符串转为long
      Parameters:
      value - 16进制字符串
      Returns:
      long值
      Since:
      5.7.4
    • appendHex

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

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

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