2017-05-03 98 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