博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中字节数组byte[]和字符(字符串)之间的转换
阅读量:5846 次
发布时间:2019-06-18

本文共 1562 字,大约阅读时间需要 5 分钟。

转自:http://blog.csdn.net/linlzk/article/details/6566124

Java与其他语言编写的程序进行tcp/ip socket通讯时,通讯内容一般都转换成byte数组型,java在字符与数组转换也是非常方便的;

 

1、将字符转换成byte数组

     String  str = "罗长";

     byte[] sb = str.getBytes();

 

2、将byte数组转换成字符

     byte[] b={(byte)0xB8,(byte)0xDF,(byte)0xCB,(byte)0xD9}; 

     String str= new String (b);

 

3、为了方便字符的加减操作,通常以16进制字符替代普通字符与byte数组进行相互转换

 /**

  * 16进制的字符串表示转成字节数组
  *
  * @param hexString
  *            16进制格式的字符串
  * @return 转换后的字节数组
  **/
 public static byte[] toByteArray(String hexString) {
  if (StringUtils.isEmpty(hexString))
   throw new IllegalArgumentException("this hexString must not be empty");
 
  hexString = hexString.toLowerCase();
  final byte[] byteArray = new byte[hexString.length() / 2];
  int k = 0;
  for (int i = 0; i < byteArray.length; i++) {//因为是16进制,最多只会占用4位,转换成字节需要两个16进制的字符,高位在先
   byte high = (byte) (Character.digit(hexString.charAt(k), 16) & 0xff);
   byte low = (byte) (Character.digit(hexString.charAt(k + 1), 16) & 0xff);
   byteArray[i] = (byte) (high << 4 | low);
   k += 2;
  }
  return byteArray;
 }
 
 /**
  * 字节数组转成16进制表示格式的字符串
  *
  * @param byteArray
  *            需要转换的字节数组
  * @return 16进制表示格式的字符串
  **/
 public static String toHexString(byte[] byteArray) {
  if (byteArray == null || byteArray.length < 1)
   throw new IllegalArgumentException("this byteArray must not be null or empty");
 
  final StringBuilder hexString = new StringBuilder();
  for (int i = 0; i < byteArray.length; i++) {
   if ((byteArray[i] & 0xff) < 0x10)//0~F前面不零
    hexString.append("0");
   hexString.append(Integer.toHexString(0xFF & byteArray[i]));
  }
  return hexString.toString().toLowerCase();
 }

转载于:https://www.cnblogs.com/yibao/p/7670177.html

你可能感兴趣的文章
人,人,还是人-对需求、沟通、辅导、会议、改变、学习的狂想
查看>>
【自动化测试技术QTP基础系列八】---检查点
查看>>
UESTC 2014 Summer Training #11 Div.2
查看>>
我的友情链接
查看>>
搭建openstack,报:Error: unable to connect to node rabbit@localhost: nodedown
查看>>
团队正能量读书笔记
查看>>
自动接听挂断电话
查看>>
生成器
查看>>
基础篇19章综合练习题
查看>>
python中的问号表达式
查看>>
java 测试IP
查看>>
C#实现ActiveX控件开发与部署
查看>>
用CSS做导航菜单的4个理由
查看>>
OAuth授权登录
查看>>
转:Chrome不支持showModalDialog模态对话框和无法返回returnValue的问题
查看>>
mysql优化综合(转)
查看>>
BZOJ5072:[Lydsy1710月赛]小A的树(树形DP)
查看>>
单链表及其算法演示(Data structure course from HaoBin)
查看>>
Day6-Dhcp
查看>>
NOIP2015 运输计划 二分答案+Tarjan LCA+树上差分
查看>>