2017-05-03 67 views
1

我想在java中编写一个解析字节数组以确定它是否遵循特定模式的函数。这种模式如下:验证字节数组

  1. 前两个在阵列中的字节是1和0
  2. 的两个字节,接着通过一个0
  3. 此随机字节的序列终止字节的随机序列后面跟着字节也由0
  4. 终止的另一随机序列,存在有下列此终止0

我有麻烦的如何处理实现这样的功能的逻辑的思维没有字节。

+3

什么具体问题?你有规则来匹配模式。 –

+0

你如何解决这个问题?直。规则非常清晰,您只需将其翻译成程序即可。想想什么阻止了你,并且请让问题更具体。 –

回答

0

假设你有一个已经初始化,并且具有的长度大于2个字节的初始数组:

byte[] array = ... 

如果前两个字节分别为1和0,则:

array[0] == 1 && array[1] == 0 

然后你会说有两个随机字节序列,必须必须以0结尾。这意味着我们只需要在前两个索引之后专门查找数组中的两个0。

Collections.frequency(Arrays.asList(Arrays.copyOfRange(array, 2, array.length)), 0) == 2 

还必须检查最后一个字节是0:

array[array.length - 1] == 0 
+0

如果我正确读取OP,则必须有一个1,0和两个(非零)字节序列,每个字节都以零结尾,仅此而已。所以你还需要检查'array [array.length-1] == 0'是否符合所有条件,如果它们确实如我所理解的那样。 –

+0

@凯文安德森好抓! –

+0

对于所需格式的任何输入数组字节,对collections.frequency的调用始终返回值0。我该如何解决这个问题? – martinsarif