如何在Java中初始化字节数组?

5

我有一个字节数组,像这样:(这不是实际的字节数组,我已经修改了它)

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

我想知道如何在Java中初始化此项,以便我可以将这个字节数组转换为字符串?以下行不起作用。
// 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);

可能是如何在Java中初始化字节数组?的重复问题。 - Jorgesys
没人预料到有符号字节:) 你需要写-1而不是255,等等。 - ZhongYu
1个回答

20

这应该可以工作

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

Byte 只能容纳 -128 到 127 的值。一些值超出了 byte 值的限制,因此需要将它们转换为 byte。


这可能不是原帖作者想要的。看起来意图是根据不同字符的Unicode值创建一个字符串。 - Mick Mnemonic
@MickMnemonic 是的。在OP代码中,字符串转换是有效的,他只是没有初始化字节数组 :) - Suresh Atta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接