注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Fly to the Sky!

很多人因为寂寞而错爱一个人,更多人因为错爱一个人而寂寞一生。

 
 
 

日志

 
 

JAVA十六进制互换字符串  

2009-07-29 11:53:42|  分类: java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//   转化字符串为十六进制编码
public   static   String   toHexString(String   s)      
{      
String   str= " ";      
for   (int   i=0;i <s.length();i++)      
{      
int   ch   =   (int)s.charAt(i);      
String   s4   =   Integer.toHexString(ch);      
str   =   str   +   s4;  
}      
return   str;      
}  

 

//   转化十六进制编码为字符串
public   static   String   toStringHex(String   s)
{
  byte[]   baKeyword   =   new   byte[s.length()/2];
    for(int   i   =   0;   i   <   baKeyword.length;   i++)
    {
      try
      {
      baKeyword[i]   =   (byte)(0xff   &   Integer.parseInt(s.substring(i*2,   i*2+2),16));
      }
      catch(Exception   e)
      {
      e.printStackTrace();
      }
    }
   
  try  
  {
  s   =   new   String(baKeyword,   "utf-8 ");//UTF-16le:Not
  }  
  catch   (Exception   e1)  
  {
  e1.printStackTrace();
  }  
  return   s;
}

public   static   void   main(String[]   args)   {
System.out.println(encode( "中文 "));
System.out.println(decode(encode( "中文 ")));
}
/*
  *   16进制数字字符集
  */
private   static   String   hexString= "0123456789ABCDEF ";
/*
  *   将字符串编码成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());
}

  评论这张
 
阅读(973)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017