Java byte[] 数组中项目的倒序

reverse order of items in a Java byte[] array

我在正确颠倒字节数组中项目的顺序时遇到问题。我想将以下字符串翻转为以下字符串:

original "\u042F\u0490\u0418\u0432\u0435\u0442"

flipped "\u0442\u0435\u0432\u0418\u0490\u042F"

我试过类似的东西,但这不起作用。

public byte[] invert(byte[] input) {
    ByteBuffer bb = ByteBuffer.wrap(input);
    bb.order(ByteOrder.LITTLE_ENDIAN);
    byte[] b = bb.array();
    return b;
}

有什么想法吗?

不要试图将 Unicode 字符视为字节!最简单的方法是创建一个字符串 (String(byte[])) 获取字符 (String.toCharArray()) 并将它们以相反的顺序写入 char[],然后通过再次字符串。

这将执行您的示例显示您正在寻找的内容:

String reversed = new StringBuilder(str).reverse().toString();

您可能需要将 byte[] 解码为 String,然后使用正确的字符编码将反向 String 编码回 byte[]