Java:将字符串转换为字节数组,然后转换为长值,反之亦然

标签 java arrays

基本上,我正在寻找 .NET 的 BitConverter

我需要从字符串中获取字节,然后将它们解析为长值并存储它。之后,读取长值,解析为字节数组并创建原始字符串。我怎样才能在Java中实现这一点?

编辑:有人已经问过类似的问题。我寻找的更像是示例,然后是 javadoc 引用...

最佳答案

String 有一个 getBytes 方法。您可以使用它来获取字节数组。

要将字节数组存储为长整型,我建议您将字节数组包装在 ByteBuffer 中并使用 asLongBuffer 方法。

要从字节数组中获取String,您可以使用String(byte[] bytes) 构造函数。

String input = "hello long world";

byte[] bytes = input.getBytes();
LongBuffer tmpBuf = ByteBuffer.wrap(bytes).asLongBuffer();
    
long[] lArr = new long[tmpBuf.remaining()];
for (int i = 0; i < lArr.length; i++)
    lArr[i] = tmpBuf.get();
    
System.out.println(input);
System.out.println(Arrays.toString(lArr));
// store longs...
    
// ...load longs
long[] longs = { 7522537965568945263L, 7955362964116237412L };
byte[] inputBytes = new byte[longs.length * 8];
ByteBuffer bbuf = ByteBuffer.wrap(inputBytes);
for (long l : longs)
    bbuf.putLong(l);
System.out.println(new String(inputBytes));

请注意,您可能想要存储一个额外的整数,告诉长数组实际存储了多少字节,因为字节数可能不是 8 的倍数。

关于Java:将字符串转换为字节数组,然后转换为长值,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432147/

相关文章:

java - 将 spring.config.location 设置为相对路径

Java 将 String 转换为 Int 时产生错误

C 打印二维数组

java - 数组的最小元素

javascript - 如何使用数组将变量插入到 dat.Gui 中?

java - 使用 VisualVM 堆转储计算 java 对象的内存使用情况与理论方法不符

java - Cassandra Java客户端: AccessControlException: access denied on "C:\Program Files\DataStax-DDC\apache-cassandra\conf\logback.xml" "read")

通过引用/值传递的 Java String 不可变

c++ - C++ 中的数组操作

javascript - 数组中的展开操作出错。 TS1005 : ',' expected. typescript