gpt4 book ai didi

java - 在 ByteArray 中查找字节序列

转载 作者:行者123 更新时间:2023-12-05 03:02:27 26 4
gpt4 key购买 nike

我需要在 ByteArray 中找到一个字节序列,但似乎没有任何直接操作可以这样做。确定 ByteArray 中是否存在特定字节序列的最直接途径是什么?

例如,我想用这样的东西捕获序列的范围(或 null):

val searchArray = arrayOf(0xF1.toByte(), 0xF2.toByte(), 0xF4.toByte(), 0xF8.toByte())
val range = myByteArray.range(of: searchArray)

我也很乐意只使用起始索引,因为我总是知道我的搜索数组的大小。

最佳答案

只为它添加 Guava 太简单了:

fun ByteArray.findFirst(sequence: ByteArray,startFrom: Int = 0): Int {
if(sequence.isEmpty()) throw IllegalArgumentException("non-empty byte sequence is required")
if(startFrom < 0 ) throw IllegalArgumentException("startFrom must be non-negative")
var matchOffset = 0
var start = startFrom
var offset = startFrom
while( offset < size ) {
if( this[offset] == sequence[matchOffset]) {
if( matchOffset++ == 0 ) start = offset
if( matchOffset == sequence.size ) return start
}
else
matchOffset = 0
offset++
}
return -1
}

关于java - 在 ByteArray 中查找字节序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54750416/

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