5

I have a byte array like this: (this is not the actual byte array, I have modified it)

[69, 121, 101, 45, 62, 118, 101, 114, 196, 195, 61, 101, 98]

I want to know how can I initialize this in Java so that I can convert this byte array to String? Below line doesn't work.

// this doesn't work
byte[] bytes = [69, 121, 101, 45, 62, 118, 101, 114, 196, 195, 61, 101, 98];

// now convert to string
String data = new String(bytes, StandardCharsets.UTF_8);
user1950349
  • 4,738
  • 19
  • 67
  • 119
  • possible duplicate of [How do I initialize a byte array in Java?](http://stackoverflow.com/questions/11208479/how-do-i-initialize-a-byte-array-in-java) – Jorgesys Sep 18 '15 at 23:52
  • nobody expected signed bytes:) instead of 255, you need to write -1, etc. – ZhongYu Sep 19 '15 at 02:10

1 Answers1

20

This should work

  byte[] bytes = {69, 121, 101, 45, 62, 118, 101, 114, (byte) 196, (byte) 195, 61, 101, 98};

Byte can hold upto -128 to 127 only. Some of the values are exceeding the limit of a byte value. So you need to cast them to byte.

Suresh Atta
  • 120,458
  • 37
  • 198
  • 307
  • This is probably not what the OP wants. It seems that the intention is to create a string based on the unicode values of different characters. – Mick Mnemonic Sep 18 '15 at 23:54
  • @MickMnemonic Yes. In OP code, the string conversion works, where he failed to initialize the byte array :) – Suresh Atta Sep 18 '15 at 23:55