让我们采用这个字节数组:
[FF 11 11 FF FF 22 22 22 FF FF 33 33 33 33 FF]
让我们选择分隔符
[FF]
然后拆分将导致这三个部分:
[11 11]
[22 22 22]
[33 33 33 33]
答案 0 :(得分:1)
您可以编写(两种)方法来实现此目的,例如:
private List<byte[]> split(byte[] array, byte value){
List<byte[]> list = new ArrayList<>();
List<Byte> subList = new ArrayList<>();
for(byte element : array){
if(element == value && !subList.isEmpty()){
list.add(convertToPrimitiveArray(subList));
subList = new ArrayList<>();
}else if(element != value){
subList.add(element);
}
}
if(!subList.isEmpty()){
list.add(convertToPrimitiveArray(subList));
}
return list;
}
private byte[] convertToPrimitiveArray(List<Byte> list){
byte[] array = new byte[list.size()];
for(int i=0 ; i<list.size() ; i++){
array[i] = list.get(i);
}
return array;
}
它通过使用提供的值拆分主数组来返回byte
数组的列表。