/**
* 字符串转换成十六进制字符串
* @param String str 待转换的ASCII字符串
* @return String 每个Byte之间空格分隔,如: [61 6C 6B]
*/
public static String str2HexStr(String str)
{ char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit; for (int i = ; i < bs.length; i++)
{
bit = (bs[i] & 0x0f0) >> ;
sb.append(chars[bit]);
bit = bs[i] & 0x0f;
sb.append(chars[bit]);
sb.append(' ');
}
return sb.toString().trim();
} /**
* 十六进制转换字符串
* @param String str Byte字符串(Byte之间无分隔符 如:[616C6B])
* @return String 对应的字符串
*/
public static String hexStr2Str(String hexStr)
{
String str = "0123456789ABCDEF";
char[] hexs = hexStr.toCharArray();
byte[] bytes = new byte[hexStr.length() / ];
int n; for (int i = ; i < bytes.length; i++)
{
n = str.indexOf(hexs[ * i]) * ;
n += str.indexOf(hexs[ * i + ]);
bytes[i] = (byte) (n & 0xff);
}
return new String(bytes);
} /**
* bytes转换成十六进制字符串
* @param byte[] b byte数组
* @return String 每个Byte值之间空格分隔
*/
public static String byte2HexStr(byte[] b)
{
String stmp="";
StringBuilder sb = new StringBuilder("");
for (int n=;n<b.length;n++)
{
stmp = Integer.toHexString(b[n] & 0xFF);
sb.append((stmp.length()==)? ""+stmp : stmp);
sb.append(" ");
}
return sb.toString().toUpperCase().trim();
} /**
* bytes字符串转换为Byte值
* @param String src Byte字符串,每个Byte之间没有分隔符
* @return byte[]
*/
public static byte[] hexStr2Bytes(String src)
{
int m=,n=;
int l=src.length()/;
System.out.println(l);
byte[] ret = new byte[l];
for (int i = ; i < l; i++)
{
m=i*+;
n=m+;
ret[i] = Byte.decode("0x" + src.substring(i*, m) + src.substring(m,n));
}
return ret;
} /**
* String的字符串转换成unicode的String
* @param String strText 全角字符串
* @return String 每个unicode之间无分隔符
* @throws Exception
*/
public static String strToUnicode(String strText)
throws Exception
{
char c;
StringBuilder str = new StringBuilder();
int intAsc;
String strHex;
for (int i = ; i < strText.length(); i++)
{
c = strText.charAt(i);
intAsc = (int) c;
strHex = Integer.toHexString(intAsc);
if (intAsc > )
str.append("\\u" + strHex);
else // 低位在前面补00
str.append("\\u00" + strHex);
}
return str.toString();
} /**
* unicode的String转换成String的字符串
* @param String hex 16进制值字符串 (一个unicode为2byte)
* @return String 全角字符串
*/
public static String unicodeToString(String hex)
{
int t = hex.length() / ;
StringBuilder str = new StringBuilder();
for (int i = ; i < t; i++)
{
String s = hex.substring(i * , (i + ) * );
// 高位需要补上00再转
String s1 = s.substring(, ) + "";
// 低位直接转
String s2 = s.substring();
// 将16进制的string转为int
int n = Integer.valueOf(s1, ) + Integer.valueOf(s2, );
// 将int转换为字符
char[] chars = Character.toChars(n);
str.append(new String(chars));
}
return str.toString();
}

最新文章

  1. scanf、printf、gets、puts的应用及区别
  2. 《机电传动控制》PLC仿真
  3. easyui 日期控件清空值
  4. 下载ADT
  5. 几种网络加载的过渡(更新MaterialProgressBar)
  6. 2015年第5本(英文第4本):Death on the Nile尼罗河上的惨案
  7. ifrog-1028 Bob and Alice are playing numbers(trie树)
  8. python str()与repr()
  9. hdu 5112 A Curious Matt
  10. 容器适配器之priority_queue
  11. MongoDB实战指南(五):MongoDB中的聚集分析
  12. css案例学习之table tr th td ul li实现日历
  13. 使用SigbalR发送通知
  14. 【LeetCode】152. Maximum Product Subarray
  15. 9.Spark Streaming
  16. LR接口压力测试实战(限量抢红包接口)
  17. 数据库MySQL的基本操作
  18. 用UltraISO制作CentOS U盘安装盘
  19. redis 数据库安装和基本使用
  20. 教你控制 RecyclerView 滑动的节奏

热门文章

  1. 从“窃听门”事件解读手机Rootkit攻击
  2. C#异步编程的实现方式(4)——Task任务
  3. JavaScript--Module模式
  4. BZOJ4817: [Sdoi2017]树点涂色(LCT)
  5. ListCtrl添加右键菜单(ListCtrl类里编辑,给ListCtrl 发送NM_RCLICK消息)
  6. CentOS不能进入登录界面
  7. ubuntu下useradd与adduser差别,新建用户不再home文件夹下
  8. 为什么golang的开发效率高(编译型的强类型语言、工程角度高、在开发上的高效率主要来自于后发优势,编译快、避免趁编译时间找产品妹妹搭讪,既是强类型语言又有gc,只要通过编译,非业务毛病就很少了)
  9. 字串乱序 PHP&JS
  10. java的23中设计模式