字符串与十六进制之间的转换

package cn.com.util;


/**
 * String、byte[]、十六进制之间的转换
 * 
 * @author will
 * @creation 2013-1-5
 */
public class HexConvert {


/**
* String转十六进制

* @param src
* @return
*/
public static String string2Hex(String src) {
return bytesToHexString(src.getBytes());
}


/**
* 十六进制转String

* @param hexString
* @return
*/
public static String hex2String(String hexString) {
byte[] b = hexStringToBytes(hexString);
return new String(b);
}


/**
* byte[]转换成String

* @param src
* @return
*/
public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length <= 0) {
return null;
}
for (int i = 0; i < src.length; i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() < 2) {
stringBuilder.append(0);
}
stringBuilder.append(hv);
}
return stringBuilder.toString();
}


/**
* 十六进制转换成byte[]

* @param hexString
* @return
*/
public static byte[] hexStringToBytes(String hexString) {
if (hexString == null || hexString.equals("")) {
return null;
}
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i < length; i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));
}
return d;
}


private static byte charToByte(char c) {
return (byte) "0123456789ABCDEF".indexOf(c);
}


//汉字转换成十六进制为6位
//其他字符换成十六进制为2位
public static void main(String[] args) {
String s = "12345678901234567890";
System.out.println("元字符:" + s);
String hex = string2Hex(s);
System.out.println("->十六:" + hex);
System.out.println("->十六:" + hex.length());
System.out.println("->还原:" + hex2String(hex));


// long l = Long.decode(s);
// System.out.println("->十六:"+l);
// System.out.println("还     原:"+Long.toHexString(l));
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值