System.out.print of string without 'ln'

后端 未结 4 1619
长情又很酷
长情又很酷 2021-01-20 00:39

I have a byte array which looks like this:

[0, 0, 0, 0, 0, 0, 0, 0, 122, 98, 117, 54, 46, 0, 0, 115, 122, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 121, 116,          


        
相关标签:
4条回答
  • 2021-01-20 00:51

    You can use a String(byte[],Charset) constructor and specify a Charset to be used to decode this array of bytes:

    System.out.println(new String(byteArray, StandardCharsets.UTF_8));
    

    In most cases, StandardCharsets.UTF_8 is a default charset.

    0 讨论(0)
  • 2021-01-20 00:54

    Try this.

    byte[] bytes = new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 122, 98, 117, 54, 46, 0, 0, 115, 122, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 121, 116, 117, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 107, 111, 98, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 42, 109, 111, 119, 40, 0, 0, 0, 0, 0, 0, 107, 111, 98, 0, 0, 0, 0, 0, 98, 111, 40};
    System.out.println(new String(bytes));
    
    0 讨论(0)
  • 2021-01-20 01:04

    Your byte array is mostly non printable characters, with a few random letters mixed in. But all you need is:

    String myString = new String(byteArray);
    

    which will give you a valid string.

    Try out the following code, as maybe it will better illustrate the issue your having:

    for (char c : new String(byteArray).toCharArray()) {
        System.out.printf("Character: %s Hex: %02x \n", c, (int) c);
    }
    
    0 讨论(0)
  • 2021-01-20 01:11

    try this

    System.out.println(Arrays.toString(byteArray));
    
    0 讨论(0)
提交回复
热议问题