字符串、byte数组、16进制字符串之间的相互转换---随笔

引入maven依赖

  <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.12</version>
  </dependency>

工具类如下

import io.netty.handler.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;

import java.io.UnsupportedEncodingException;

/**
 * @author savesl
 */
public class CodeUtil {
    /**
     * 将普通字符串转换为16进制字符串
     * @param str 普通字符串
     * @param lowerCase 转换后的字母为是否为小写  可不传默认为true
     * @param charset 编码格式  可不传默认为Charset.defaultCharset()
     * @return
     * @throws UnsupportedEncodingException
     */
    public static String stringToHexadecimal(String str,boolean lowerCase,String charset) throws Exception {
        return Hex.encodeHexString(str.getBytes(charset),lowerCase);
    }

    /**
     * 将16进制字符串转换为普通字符串
     * @param hexStr 16进制字符串
     * @param charset 编码格式 可不传默认为Charset.defaultCharset()
     * @return
     * @throws DecoderException
     * @throws UnsupportedEncodingException
     */
    public static String hexadecimalToString(String hexStr,String charset) throws Exception {
        byte[] bytes = Hex.decodeHex(hexStr);
        return new String(bytes,charset);
    }

    /**
     * 将16进制字符串转换为byte数组
     * @param hexItr 16进制字符串
     * @return
     */
    public static byte[] hexadecimalToByteArr(String hexItr) throws Exception {
        return Hex.decodeHex(hexItr);
    }

    /**
     * byte数组转化为16进制字符串
     * @param arr 数组
     * @param lowerCase 转换后的字母为是否为小写 可不传默认为true
     * @return
     */
    public static String byteArrToHexadecimal(byte[] arr,boolean lowerCase){
        return Hex.encodeHexString(arr, lowerCase);
    }

    /**
     * 将普通字符串转换为指定格式的byte数组
     * @param str 普通字符串
     * @param charset 编码格式 可不传默认为Charset.defaultCharset()
     * @return
     * @throws UnsupportedEncodingException
     */
    public static byte[] stringToByteArr(String str,String charset) throws Exception {
        return str.getBytes(charset);
    }

    /**
     * 将byte数组转换为指定编码格式的普通字符串
     * @param arr byte数组
     * @param charset 编码格式 可不传默认为Charset.defaultCharset()
     * @return
     * @throws UnsupportedEncodingException
     */
    public static String byteArrToString(byte[] arr,String charset) throws Exception {
        return new String(arr,charset);
    }

}

你可能感兴趣的:(java,code)