转自: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();
 }

最新文章

  1. PHP中计划任务
  2. 可拖拽和带预览图的jQuery文件上传插件ssi-uploader
  3. (原创)古典主义&mdash;&mdash;平凡之美 佳作欣赏(摄影,欣赏)
  4. 使用finfo_file()函数检测上传图片的类型
  5. HTML 水平线&lt;hr/&gt;标签
  6. phpcms 04
  7. Handlebars 介绍
  8. java split函数用法(转)
  9. Java方法-字符串
  10. jquery之营销系统(会员促销)
  11. thinkPHP 空模块和空操作、前置操作和后置操作 详细介绍(十四)
  12. vuex在项目中使用的一点总结
  13. redis集群篇
  14. EmbeddedSolrServer的使用与solor6.3.0的使用
  15. laravel好文
  16. 安装_oracle11G_客户端_服务端_链接_oracle
  17. flask中接收post传递数组方法
  18. 使用混淆ProGuard压缩代码和资源/减少方法数量
  19. 【Java】idea找不到符号找不到类,但是却没有错误
  20. pyspider源码解读--调度器scheduler.py

热门文章

  1. Leetcode 224.基本计算器
  2. Android ShapeDrawable之OvalShape、RectShape、PaintDrawable、ArcShape
  3. NYOJ-487月老的烦恼(1)类似于素数筛法一样的打表及一种筛法核心代码。。
  4. 理工个人积分赛最后一场(FZU)G - 五子棋,坑爹的大水题~~
  5. F题
  6. 反编译sencha toucha打包的apk文件,修改应用名称支持中文以及去除应用标题栏
  7. C语言基本概念之表达式
  8. Lca 之倍增算法
  9. spring配置文件加密
  10. C# DataGridView,右键单击RowHeader时显示右键菜单怎么做?