Java汉字与16进制数相互转换
2013-11-07 17:45
260 查看
public class Util {
public static String deUnicode(String content){//将16进制数转换为汉字
String enUnicode=null;
String deUnicode=null;
for(int i=0;i<content.length();i++){
if(enUnicode==null){
enUnicode=String.valueOf(content.charAt(i));
}else{
enUnicode=enUnicode+content.charAt(i);
}
if(i%4==3){
if(enUnicode!=null){
if(deUnicode==null){
deUnicode=String.valueOf((char)Integer.valueOf(enUnicode, 16).intValue());
}else{
deUnicode=deUnicode+String.valueOf((char)Integer.valueOf(enUnicode, 16).intValue());
}
}
enUnicode=null;
}
}
return deUnicode;
}
public static String enUnicode(String content){//将汉字转换为16进制数
String enUnicode=null;
for(int i=0;i<content.length();i++){
if(i==0){
enUnicode=getHexString(Integer.toHexString(content.charAt(i)).toUpperCase());
}else{
enUnicode=enUnicode+getHexString(Integer.toHexString(content.charAt(i)).toUpperCase());
}
}
return enUnicode;
}
private static String getHexString(String hexString){
String hexStr="";
for(int i=hexString.length();i<4;i++){
if(i==hexString.length())
hexStr="0";
else
hexStr=hexStr+"0";
}
return hexStr+hexString;
}
}
下面是测试类
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
String str="王江波是一个小朋友,HOHOHOHO";
System.out.println(Util.enUnicode(str));
//打印出 738B6C5F6CE2662F4E004E2A5C0F670B53CBFF0C0048004F0048004F0048004F0048004F
str="738B6C5F6CE2662F4E004E2A5C0F670B53CBFF0C0048004F0048004F0048004F0048004F";
System.out.println(Util.deUnicode(str));
//打印出 王江波是一个小朋友,HOHOHOHO
}
}
public static String deUnicode(String content){//将16进制数转换为汉字
String enUnicode=null;
String deUnicode=null;
for(int i=0;i<content.length();i++){
if(enUnicode==null){
enUnicode=String.valueOf(content.charAt(i));
}else{
enUnicode=enUnicode+content.charAt(i);
}
if(i%4==3){
if(enUnicode!=null){
if(deUnicode==null){
deUnicode=String.valueOf((char)Integer.valueOf(enUnicode, 16).intValue());
}else{
deUnicode=deUnicode+String.valueOf((char)Integer.valueOf(enUnicode, 16).intValue());
}
}
enUnicode=null;
}
}
return deUnicode;
}
public static String enUnicode(String content){//将汉字转换为16进制数
String enUnicode=null;
for(int i=0;i<content.length();i++){
if(i==0){
enUnicode=getHexString(Integer.toHexString(content.charAt(i)).toUpperCase());
}else{
enUnicode=enUnicode+getHexString(Integer.toHexString(content.charAt(i)).toUpperCase());
}
}
return enUnicode;
}
private static String getHexString(String hexString){
String hexStr="";
for(int i=hexString.length();i<4;i++){
if(i==hexString.length())
hexStr="0";
else
hexStr=hexStr+"0";
}
return hexStr+hexString;
}
}
下面是测试类
public class Test1 {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
String str="王江波是一个小朋友,HOHOHOHO";
System.out.println(Util.enUnicode(str));
//打印出 738B6C5F6CE2662F4E004E2A5C0F670B53CBFF0C0048004F0048004F0048004F0048004F
str="738B6C5F6CE2662F4E004E2A5C0F670B53CBFF0C0048004F0048004F0048004F0048004F";
System.out.println(Util.deUnicode(str));
//打印出 王江波是一个小朋友,HOHOHOHO
}
}
相关文章推荐
- Java汉字与16进制数相互转换
- java 16进制转与汉字相互转换
- Java的String/byte[]/16进制相互转换
- java读取写入图片文件、byte[]、base64字符串、16进制字符串相互转换
- Java中将16进制字符串转换成汉字
- 【util】用java实现16进制和byte,string的相互转换以及格式化16进制
- java byte数组与16进制间的相互转换
- java之配置文件中的汉字和unicode相互转换
- java中 8进制 10进制 2进制 16进制 相互转换
- java中 8进制 10进制 2进制 16进制 相互转换
- java 16进制与字符串直接相互转换
- UTF-8与Unicode字符的相互转换 与 16进制Unicode转换汉字
- 16进制、10进制、字符串、中文、byte[]相互转换--->java版
- Java中16进制与字符串之间的相互转换
- Java 二进制与16进制相互转换
- java 汉字与UTF-8十六进制编码 间相互转换方法
- java 10进制和16进制的相互转换
- carryLess小笔记001_Java中16进制与字符串之间的相互转换
- java中将汉字转换成16进制
- UTF-8与Unicode字符的相互转换 与 16进制Unicode转换汉字 重用代码