How to print the data in byte array as characters?

后端 未结 6 1119
广开言路
广开言路 2020-12-07 17:18

In my byte array I have the hash values of a message which consists of some negative values and also positive values. Positive values are being printed easily by us

相关标签:
6条回答
  • 2020-12-07 17:51

    Try this one : new String(byte[])

    0 讨论(0)
  • 2020-12-07 17:56

    Try it:

    public static String print(byte[] bytes) {
        StringBuilder sb = new StringBuilder();
        sb.append("[ ");
        for (byte b : bytes) {
            sb.append(String.format("0x%02X ", b));
        }
        sb.append("]");
        return sb.toString();
    }
    

    Example:

     public static void main(String []args){
        byte[] bytes = new byte[] { 
            (byte) 0x01, (byte) 0xFF, (byte) 0x2E, (byte) 0x6E, (byte) 0x30
        };
    
        System.out.println("bytes = " + print(bytes));
     }
    

    Output: bytes = [ 0x01 0xFF 0x2E 0x6E 0x30 ]

    0 讨论(0)
  • 2020-12-07 17:57

    How about Arrays.toString(byteArray)?

    Here's some compilable code:

    byte[] byteArray = new byte[] { -1, -128, 1, 127 };
    System.out.println(Arrays.toString(byteArray));
    

    Output:

    [-1, -128, 1, 127]
    

    Why re-invent the wheel...

    0 讨论(0)
  • 2020-12-07 17:57
    byte[] buff = {1, -2, 5, 66};
    for(byte c : buff) {
        System.out.format("%d ", c);
    }
    System.out.println();
    

    gets you

    1 -2 5 66 
    
    0 讨论(0)
  • 2020-12-07 18:03

    Well if you're happy printing it in decimal, you could just make it positive by masking:

    int positive = bytes[i] & 0xff;
    

    If you're printing out a hash though, it would be more conventional to use hex. There are plenty of other questions on Stack Overflow addressing converting binary data to a hex string in Java.

    0 讨论(0)
  • 2020-12-07 18:05

    If you want to print the bytes as chars you can use the String constructor.

    byte[] bytes = new byte[] { -1, -128, 1, 127 };
    System.out.println(new String(bytes, 0));
    
    0 讨论(0)
提交回复
热议问题