Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字节数组的验证_Java_Arrays - Fatal编程技术网

Java 字节数组的验证

Java 字节数组的验证,java,arrays,Java,Arrays,我试图用java编写一个函数,解析字节数组以确定它是否遵循某种模式。这种模式如下: 数组中的前两个字节是1和0 这两个字节后面是以0结尾的随机字节序列 此随机字节序列后面是另一个随机字节序列,该序列也以0结尾 此0之后没有字节 我很难思考如何实现这样一个功能的逻辑 假设您有一个初始字节数组,该数组已经初始化,长度大于2: byte[] array = ... 如果前两个字节分别为1和0,则: array[0] == 1 && array[1] == 0 然后说有两个随机的字节

我试图用java编写一个函数,解析字节数组以确定它是否遵循某种模式。这种模式如下:

  • 数组中的前两个字节是1和0
  • 这两个字节后面是以0结尾的随机字节序列
  • 此随机字节序列后面是另一个随机字节序列,该序列也以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
    

    具体问题是什么?你有规则来匹配模式。你如何处理这个问题?直接的。规则很清楚,你只需要把它翻译成一个程序。想一想是什么阻碍了你,请把问题说得更具体一些。如果我读对了OP,那么肯定有一个1,一个0,和两个(非零)字节序列,每个字节都以一个0结尾,没有更多。因此,您还需要检查
    array[array.length-1]==0来满足所有条件,如果它们确实是我所理解的那样。@KevinAnderson捕捉得好!对collections.frequency的调用始终会为所需格式的任何字节输入数组返回值0。如何解决此问题?请尝试将
    (byte)0
    作为参数传递,而不仅仅是
    0
    ,然后告诉我是否解决了此问题