Java String和十六进制字符串互相转换 示例
Posted 软件工程小施同学
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java String和十六进制字符串互相转换 示例相关的知识,希望对你有一定的参考价值。
public class HelloWorld
public static void main(String []args)
String str = "Hello World!";
System.out.println(str);
String hexStr = str2HexStr(str);
System.out.println(hexStr);
String str2 = hexStr2Str(hexStr);
System.out.println(str2);
/**
* 字符串转换成为16进制(无需Unicode编码)
* @param str
* @return
*/
public static String str2HexStr(String str)
char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit;
for (int i = 0; i < bs.length; i++)
bit = (bs[i] & 0x0f0) >> 4;
// 注意此处,有的地方不使用空格分隔
sb.append(" " + chars[bit]);
bit = bs[i] & 0x0f;
sb.append(chars[bit]);
return sb.toString().trim();
/**
* 16进制直接转换成为字符串(无需Unicode解码)
* @param hexStr
* @return
*/
public static String hexStr2Str(String hexStr)
String str = "0123456789ABCDEF";
// 注意此处,有的地方不使用空格分隔
hexStr = hexStr.replace(" ", "");
char[] hexs = hexStr.toCharArray();
byte[] bytes = new byte[hexStr.length() / 2];
int n;
for (int i = 0; i < bytes.length; i++)
n = str.indexOf(hexs[2 * i]) * 16;
n += str.indexOf(hexs[2 * i + 1]);
bytes[i] = (byte) (n & 0xff);
return new String(bytes);
参考:
【Java】string和十六进制字符串互相转换_K1nney的博客-CSDN博客_string转16进制字符串
以上是关于Java String和十六进制字符串互相转换 示例的主要内容,如果未能解决你的问题,请参考以下文章