我需要比较 2 字节数组并知道哪个更大或者它们是否相等(仅相等或不同是不够的)。字节数组表示 15 个或更多字符的字符串值。这种比较在我的代码中重复了很多。
我想通过在 Java 中使用等效的 C++ memcmp 方法(希望通过 JNI)来改进再见数组比较。我找到了一个在 C# 中使用 DLLImport 的示例,所以我希望也可以应用 JNI 调用。
这是 C# 代码段:
[DllImport("msvcrt.dll")]
unsafe static extern int memcmp(void* b1, void* b2, long count);
unsafe static int ByteArrayCompare1(byte[] b1, int b1Index, int b1Length, byte[] b2, int b2Index, int b2Length)
{
CompareCount++;
fixed (byte* p1 = b1)
fixed (byte* p2 = b2)
{
int cmp = memcmp(p1 + b1Index, p2 + b2Index, Math.Min(b1Length, b2Length));
if (cmp == 0)
{
cmp = b1Length.CompareTo(b2Length);
}
return cmp;
}
}
有谁知道如何在Java中实现这个?
提前致谢,
戴安娜