`
dadi520
  • 浏览: 144767 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

java byte array to hex String

 
阅读更多

String str = new String(byte[] byteArray);

Convert a byte array to a Hex stringTag(s):

The simple way

public static String getHexString(byte[] b) throws Exception {
  String result = "";
  for (int i=0; i < b.length; i++) {
    result +=
          Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 );
  }
  return result;
}

A faster way

import java.io.UnsupportedEncodingException;

public class StringUtils {
    
  static final byte[] HEX_CHAR_TABLE = {
    (byte)'0', (byte)'1', (byte)'2', (byte)'3',
    (byte)'4', (byte)'5', (byte)'6', (byte)'7',
    (byte)'8', (byte)'9', (byte)'a', (byte)'b',
    (byte)'c', (byte)'d', (byte)'e', (byte)'f'
  };    

  public static String getHexString(byte[] raw) 
    throws UnsupportedEncodingException 
  {
    byte[] hex = new byte[2 * raw.length];
    int index = 0;

    for (byte b : raw) {
      int v = b & 0xFF;
      hex[index++] = HEX_CHAR_TABLE[v >>> 4];
      hex[index++] = HEX_CHAR_TABLE[v & 0xF];
    }
    return new String(hex, "ASCII");
  }

  public static void main(String args[]) throws Exception{
    byte[] byteArray = {
      (byte)255, (byte)254, (byte)253, 
      (byte)252, (byte)251, (byte)250
    };

    System.out.println(StringUtils.getHexString(byteArray));
    
    /*
     * output :
     *   fffefdfcfbfa
     */
    
  }
}

A more elegant (based on a suggestion by Lew on usenet-cljp)

  static final String HEXES = "0123456789ABCDEF";
  public static String getHex( byte [] raw ) {
    if ( raw == null ) {
      return null;
    }
    final StringBuilder hex = new StringBuilder( 2 * raw.length );
    for ( final byte b : raw ) {
      hex.append(HEXES.charAt((b & 0xF0) >> 4))
         .append(HEXES.charAt((b & 0x0F)));
    }
    return hex.toString();
  }

<!-- HOWTO content -->

分享到:
评论

相关推荐

    C#_string_byte数组转换解析

    public static byte[] GetBytes(string hexString, out int discarded) { discarded = 0; string newString = ""; char c; // remove all none A-F, 0-9, characters for (int i = 0; i &lt; hexString.Length; i+...

    利用MD5算法进行加密字符串

    String resultString = byteArrayToHex(results); ``` 这里使用`byteArrayToHex()`方法将字节数组转换为十六进制字符串。 #### 四、密码验证功能 代码还提供了一个`verificationPassword(String password, String...

    Python hexstring-list-str之间的转换方法

    ### Python中hexstring、list与str之间的转换方法详解 在Python编程中,经常需要处理不同格式的数据,尤其是在涉及网络通信、加密解密等场景时,数据格式的转换尤为重要。本文将详细介绍如何在Python中实现hex...

    MD5算法的java实现

    // Convert byte array to hex string StringBuilder sb = new StringBuilder(); for (byte b : md5Bytes) { sb.append(String.format("%02x", b & 0xff)); } return sb.toString(); } catch ...

    将传进来的十六进制表示的字符串转换成byte数组 文件下载

    bytesArray = binascii.unhexlify(hexString) ``` 在实际开发中,我们可能需要处理大量数据,这时性能优化就显得尤为重要。例如,可以使用缓冲区(Buffer)来提高转换效率。在Java中,可以使用`java.nio`包中的`...

    C#【文件操作篇】hex文件转bin文件

    private static byte[] ConcatenateArrays(byte[] array1, byte[] array2) { byte[] result = new byte[array1.Length + array2.Length]; Buffer.BlockCopy(array1, 0, result, 0, array1.Length); Buffer....

    java 字符串转16进制Ascii

    for (byte b : encoded.array()) { hexString.append(String.format("%02x", b & 0xff)); } return hexString.toString(); } ``` 在这个例子中,我们使用了UTF-8字符集来编码字符串,这样可以处理包括Unicode...

    DES对称分组密码系统的Java实现

    public static String bytes2Hex(byte[] data) { if (data==null) { return null; } else { int len = data.length; String str = ""; for (int i=0; i; i++) { if ((data[i]&0xFF)) str = str + "0" + ...

    使用MD5进行加密的使用方法和程序

    ' Convert the byte array to hexadecimal string Dim hex As New StringBuilder(hashBytes.Length * 2) For Each byteVal As Byte In hashBytes hex.AppendFormat("{0:x2}", byteVal) Next Return hex....

    java实现md5加密示例

    public static String byteArrayToHex(byte[] byteArray) { // 首先初始化一个字符数组,用来存放每个16进制字符 char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' }; //...

    详解 Kotlin Reference Basic Types, String, Array and Imports

    同时,类型转换可以通过`toXxx`方法实现,例如`intValue.toLong()`将`Int`转换为`Long`。 在比较方面,Kotlin区分了`==`和`===`。`==`用于值比较,而`===`用于引用比较。例如: ```kotlin val a = 10000 val b = ...

    字符串转16进制字节

    在Java中,可以使用`String.getBytes()`和`new String(byte[], charset)`;在JavaScript中,可以使用`Buffer`对象的`toString('hex')`和`from`方法;在C++中,可以利用`std::stringstream`和`std::hex`配合进行转换...

    字符串转换

    byte_array = binascii.unhexlify(hex_string) ``` 相反,字节数组转换为16进制字符串则是将每个字节拆分成两个4位的二进制数,然后转换为16进制表示。在Python中,可以用`binascii`库的`hexlify`函数完成: ```...

    VB ASP MD5 SHA HMAC AES GZIP BASE64 微信公众号EncodingAESKey 十全大补DLL

    String2Byte(dataStr As String, [ChatSet As String]) As Array(Byte) getFileBytes(fileName) As Array(Byte) 3.8 文件拆分和合并 ---------------------------------------------------------------------------...

    base64(包含16进制数值型编码)

    const uint8Array = new Uint8Array(hexString.match(/.{1,2}/g).map(byte =&gt; parseInt(byte, 16))); const base64Str = btoa(String.fromCharCode(...uint8Array)); ``` 这些代码片段展示了如何将16进制字符串...

    JAVA SE基础篇-资料整理

    String hexStr = Integer.toHexString(num); // 转换为十六进制字符串 ``` #### 语法结构与修饰符 Java 的语法结构清晰严谨,主要包括类定义、方法定义、变量声明等内容。同时,Java 提供了一些修饰符来控制访问...

    EmvReader Java Code

    public static String toHexString(byte[] buf) { char[] chars = new char[2 * buf.length]; for (int i = 0; i ; ++i) { chars[2 * i] = HEX_CHARS[(buf[i] & 0xF0) &gt;&gt;&gt; 4]; chars[2 * i + 1] = HEX_CHARS...

    串口86045.pdf

    byte_array = hex_to_bytes(hex_string) ``` 在这个Python代码中,`hex_to_bytes`函数接收一个带有空格的十六进制字符串,移除空格后使用`unhexlify`进行转换。 总之,这个文件涉及的串口通信和十六进制数据转换在...

    usb communication

    'Convert the byte array to a string. DevicePathName = CStr(DetailDataBuffer()) 'Convert to Unicode. DevicePathName = StrConv(DevicePathName, vbUnicode) 'Strip cbSize (4 bytes) from the beginning....

    nodejs 十六进制字符串型数据与btye型数据相互转换

    const hexString = Bytes2HexString(bytes); console.log(hexString); // 输出 "A064" ``` 2. 将十六进制字符串`"A064"`转换回byte型数据: ```javascript const hexStr = "A064"; const bytesBack = await ...

Global site tag (gtag.js) - Google Analytics