java 字符串 十六进制_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 ) );

}

}

原文:https://www.cnblogs.com/gyyyblog/p/13164305.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值