java—检测数组中的元素并基于该元素创建新数组

kd3sttzy  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(355)

我有一个串行通信协议,我一直在接收消息,消息几乎同时到达一个数组中,我想使用确定消息开始[102][102]的字符和指示消息结束[50][101]的字符将此数组分为几个其他数组,你怎么能这么做?

我试了以下方法:

byte[] buffer = Arrays.copyOfRange(dados,0,16);
                    byte[] buffer1 =  Arrays.copyOfRange(dados,16,32);
                    byte[] buffer2 = Arrays.copyOfRange(dados, 32, 48);

但是,如果我停止接收来自任何设备的消息,则主数组将更改,从而生成异常

j13ufse2

j13ufse21#

获取帧的开始和结束位置。你可以用这篇文章得到它。字节[]数组模式搜索
实现如下:

List<Integer> startPositions = getPositions(inputBytes, startPattern);
List<Integer> endPositions = getPositions(inputBytes, endPattern);

然后通过迭代开始对inputbytes进行切片。
当您在开始=>搜索结束列表中的下一个可见结束时。
然后你可以切薄片

相关问题