java中位元組數組byte[]和字元(字串)之間的轉換

來源:互聯網
上載者:User

標籤:git   佔用   null   方便   exception   for   rac   static   his   

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

java中位元組數組byte[]和字元(字串)之間的轉換

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.