java中 16进制字符串 与普通字符串 与 byte数组 之间的转化

方法依赖commons-codec包  maven的引入方式如下

1 <dependency>
2    <groupId>commons-codec</groupId>
3    <artifactId>commons-codec</artifactId>
4    <version>1.12</version>
5 </dependency>

1. 普通字符串转换为16进制字符串

 1    /**
 2      * 将普通字符串转换为16进制字符串
 3      * @param str 普通字符串
 4      * @param lowerCase 转换后的字母为是否为小写  可不传默认为true
 5      * @param charset 编码格式  可不传默认为Charset.defaultCharset()
 6      * @return
 7      * @throws UnsupportedEncodingException
 8      */
 9     public static String str2HexStr(String str,boolean lowerCase,String charset) throws UnsupportedEncodingException {
10         return Hex.encodeHexString(str.getBytes(charset),lowerCase);
11     }

2.16进制字符串转换为普通字符串

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

3. 16进制字符串转换为byte数组

1    /**
2      * 将16进制字符串转换为byte数组
3      * @param hexItr 16进制字符串
4      * @return
5      */
6     public static byte[] hexItr2Arr(String hexItr) throws DecoderException {
7         return Hex.decodeHex(hexItr);
8     }

4. byte数组转换为16进制字符串

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

5. 将普通字符串转换为指定编码格式的byte数组

 1    /**
 2      * 将普通字符串转换为指定格式的byte数组
 3      * @param str 普通字符串
 4      * @param charset 编码格式 可不传默认为Charset.defaultCharset()
 5      * @return
 6      * @throws UnsupportedEncodingException
 7      */
 8     public static byte[] str2Arr(String str,String charset) throws UnsupportedEncodingException {
 9         return str.getBytes(charset);
10     }

6. 将byte数组转换为指定编码格式的普通字符串

 1     /**
 2      * 将byte数组转换为指定编码格式的普通字符串
 3      * @param arr byte数组
 4      * @param charset 编码格式 可不传默认为Charset.defaultCharset()
 5      * @return
 6      * @throws UnsupportedEncodingException
 7      */
 8     public static String arr2Str(byte[] arr,String charset) throws UnsupportedEncodingException {
 9         return new String(arr,charset);
10     }
原文地址:https://www.cnblogs.com/hetutu-5238/p/10648116.html