欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-17 11:16:10
...

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

最近在写Java调用C#写的socket接口的客户端调用demo,要用到一些字节转换相关的代码,找到一篇博客不错,转发一下,顺便收藏。

博客原文出处:https://www.cnblogs.com/hetutu-5238/p/10648116.html

1. 方法依赖commons-codec包

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

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

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

3. 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);
}

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

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

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

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

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

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

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

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