java 字符串与十六进制互转

package com.zz.spxt.utils;


/**
 * @Author: yang
 * @Date: Create in 2020/6/18
 * @Description: 字符串与十六进制互转
 * @Modify By:
 */
public class HexStrUtil {
/**
 * 字符串转换成为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 ( byte b : bs )
		{
			bit = (b & 0x0f0) >> 4;
			sb.append( chars[bit] );
			bit = b & 0x0f;
			sb.append( chars[bit] );
/* sb.append(' '); */
		}
		return(sb.toString().trim() );
	}


/**
 * 16进制直接转换成为字符串(无需Unicode解码)
 * @param hexStr
 * @return
 */
	public static String hexStr2Str( String hexStr )
	{
		String str = "0123456789ABCDEF";
		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 ) );
	}
}
posted @ 2020-06-19 17:45  Gyyyang  阅读(1411)  评论(0编辑  收藏  举报