最近做这方面的程序,发现网上的没有系统的归纳一下。我现在把我所知道贡献给大家:
// 转化字符串为十六进制编码 public static String toHexString(String str) { String result= " "; for (int i=0;i <str.length();i ++) { int ch = (int)str.charAt(i); String s = Integer.toHexString(ch); result = str+ s; } return result; }
//转换10进制为16进制
int i=10;
String result=Integer.toHexString(i); //可以得到result为"a";
//把字符串转换成16进制。以字符串的形式返回
public static String encode(String str){ // 根据默认编码获取字节数组 byte[] bytes=str.getBytes(); StringBuilder sb=new StringBuilder(bytes.length*2); // 将字节数组中每个字节拆解成2位16进制整数 for(int i=0;i <bytes.length;i++){ sb.append(hexString.charAt((bytes[i]&0xf0)>> 4)); sb.append(hexString.charAt((bytes[i]&0x0f)>> 0)); } return sb.toString(); }
/* * 将16进制数字解码成字符串,适用于所有字符(包括中文) */ public static String decode(String bytes) { ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length()/2); //将每2位16进制整数组装成一个字节 for(int i=0;i<bytes.length();i+=2) baos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1)))); return new String(baos.toByteArray()); }
相关资源:十六进制转成十进制的java程序实现