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和十六进制字符串互相转换 示例的主要内容,如果未能解决你的问题,请参考以下文章

JAVA十六进制字符串与整型互相转换

java-十进制八进制十六进制数互相转换

C# short、string、二进制之间的转换问题。

Java中String类型和int类型的互相转换

Java中byte与16进制字符串的互相转换

Java中byte与16进制字符串的互相转换