Java 如何检查字节数组内容是否是一个双数而不是字符串?

Java 如何检查字节数组内容是否是一个双数而不是字符串?,java,Java,嗨,我有一个字节数组,它通常包含来自双倍数字的内容,如下所述: //runs and prints 1.0 byte[] byteArrayValExpected = { 63, -16, 0, 0, 0, 0, 0, 0 }; System.out.println(ByteBuffer.wrap(byteArrayValExpected).getDouble()); //fails because byte array contents forms string "None" byte[]

嗨,我有一个字节数组,它通常包含来自双倍数字的内容,如下所述:

//runs and prints 1.0
byte[] byteArrayValExpected = { 63, -16, 0, 0, 0, 0, 0, 0 };
System.out.println(ByteBuffer.wrap(byteArrayValExpected).getDouble());

//fails because byte array contents forms string "None"
byte[] byteArrayValUnexpected = { 78, 111, 110, 101 };
System.out.println(ByteBuffer.wrap(byteArrayValUnexpected).getDouble());
所以现在的问题是,我如何发现字节缓冲区元素形成了一个双倍数,而不是像上面所示的“None”那样的字符串


请导游。提前感谢。

一般来说,这是不可能的。字符串和double都可以包含任意字节序列。只要至少有8个字节,就可以是


解决方案是在不知道哪个是哪个的情况下,不要将双精度和字符串编码为原始字节。

通常这是不可能的。字符串和double都可以包含任意字节序列。只要至少有8个字节,就可以是


解决方案是在不知道哪个是哪个的情况下,不要将双精度和字符串编码为原始字节。

通常这是不可能的。字符串和double都可以包含任意字节序列。只要至少有8个字节,就可以是


解决方案是在不知道哪个是哪个的情况下,不要将双精度和字符串编码为原始字节。

通常这是不可能的。字符串和double都可以包含任意字节序列。只要至少有8个字节,就可以是


解决方案是,在不知道哪个是哪个的情况下,不要将双精度和字符串编码为原始字节。

如果字节数组有8个字节,它可以是双精度或字符串,您无法确定

另一方面,如果您知道字符串的长度从来都不是4个字符(Java中的字符表示为两个字节)。在这种情况下,如果getDouble函数抛出异常,则字节数组为字符串,否则为double


我建议您将数组包装在类型说明符附近。

如果字节数组有8个字节,它可以是双字节或字符串,您不能确定

另一方面,如果您知道字符串的长度从来都不是4个字符(Java中的字符表示为两个字节)。在这种情况下,如果getDouble函数抛出异常,则字节数组为字符串,否则为double


我建议您将数组包装在类型说明符附近。

如果字节数组有8个字节,它可以是双字节或字符串,您不能确定

另一方面,如果您知道字符串的长度从来都不是4个字符(Java中的字符表示为两个字节)。在这种情况下,如果getDouble函数抛出异常,则字节数组为字符串,否则为double


我建议您将数组包装在类型说明符附近。

如果字节数组有8个字节,它可以是双字节或字符串,您不能确定

另一方面,如果您知道字符串的长度从来都不是4个字符(Java中的字符表示为两个字节)。在这种情况下,如果getDouble函数抛出异常,则字节数组为字符串,否则为double



我建议您将数组包装在类型说明符附近。

Hi@Trarry Wombat我读取了这些字节数组,并在csv文件中写入双栏,其中有双栏。我想确保即使字符串值出现,我也不会在csv文件的双栏空间中写入,因此引发或捕获异常不会起作用。@ScaryWombat:如果少于8个字节。您好@恐怖袋熊我读取这些字节数组并写入csv文件,其中有双栏。我想确保即使字符串值出现,我也不会将其写入csv文件的双栏空间中,因此引发或捕获异常将不起作用。@ScaryWombat:如果少于8个字节,它将引发异常。您好@恐怖袋熊Wombat我读取这些字节数组并写入csv文件,其中有双栏。我想确保即使字符串值出现,我也不会将其写入csv文件的双栏空间中,因此引发或捕获异常将不起作用。@ScaryWombat:如果少于8个字节,它将引发异常。嗨@brary Wombat我读取了这些字节数组并在csv文件中写入有双栏的csv文件我想确保即使字符串值出现,我也不会在csv文件的双栏空间中写入,所以引发或捕获异常不会起作用。@ScaryWombat:如果少于8字节,它会引发异常。是的,我说过了“如果字节数组有8个字节,则可能是双字节或字符串,您不能确定。“但是,如果用户确信他使用的字符串长度永远不会超过4个字符(8个字节),那么他可以调用getDouble并检查异常情况。@Thrarry Wombat我不明白你说的“它可能是8个字节的字符串,也可能是双精度字符串”是怎么说的。写在答案的开头。是的,我说过”如果字节数组有8个字节,它可以是双字节或字符串,您不能确定。“但是,如果用户确信他使用的字符串长度永远不会超过4个字符(8个字节),那么他可以调用getDouble并检查异常情况。@Thrarry Wombat我不明白你说的“它可能是8个字节的字符串,也可能是双精度字符串”是怎么说的。写在答案的开头。是的,我说过”如果字节数组有8个字节,它可以是双字节或字符串,您不能确定。“但是,如果用户确信他使用的字符串长度永远不会超过4个字符(8个字节),那么他可以调用getDouble并检查异常情况。@Thrarry Wombat我不明白你说的“它可能是8个字节的字符串,也可能是双精度字符串”是怎么说的。写在答案的开头。是的,我说过”如果字节数组有8个字节,它可以是双字节或字符串,您不能确定。“但是,如果用户确信他使用的字符串长度永远不会超过4个字符(8个字节),那么他可以调用getDouble并检查异常情况。@可怕的袋熊我不明白你说的“它可能是8个字节的字符串,也可能是双精度字符串”是在答案的开头写的。解决方案实际上不是在arr前面加前缀吗?”