gpt4 book ai didi

Java:Arrays.equals 不起作用

转载 作者:行者123 更新时间:2023-12-01 07:08:49 25 4
gpt4 key购买 nike

我有一个数组,它是我读入的文件的 byte[]。我需要检查文件的前 5 个字节。首先,我这样做了:

if (ips_bytes[0] != ips_ident[0] && ips_bytes[1] != ips_ident[1] && ips_bytes[2] != ips_ident[2]
&& ips_bytes[3] != ips_ident[3] && ips_bytes[4] != ips_ident[4]) {
return "Nope!";
}

这可行,但看起来不太好,而且我猜它效率不是很高。所以我研究了其他方法并发现了Arrays.equals()。我更改了代码以反射(reflect)这一点:

if (!Arrays.equals(ips_ident, Arrays.copyOfRange(ips_bytes, 0, 4))) {
return "Baka";
}

这不起作用,我尝试了 0, 4 和 1, 5 看看范围是否不同。我是否因为这看起来不错而错过了一些东西?数组值绝对正确。

最佳答案

你们的条件并不等同。

如果所有对应元素对不相等,第一个将为真

如果存在至少一对不相等的元素,则第二个将为 true

我相信您需要第二个代码,但您需要对其进行一些修复。 Arrays.copyOfRange的第三个参数索引被排除。所以你需要

Arrays.copyOfRange(ips_bytes, 0, 5))

或更好

Arrays.copyOfRange(ips_bytes, 0, ips_ident.length))

关于Java:Arrays.equals 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17983528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com