2017-02-06 27 views
0

こんにちは、私はJavaでバイトメッセージ検証をチェックする方法を理解しようとしています。有効なメッセージは、STXで始まり、DLEを持ち、ETXで終わるメッセージです。有効なメッセージは、STXがDLEを持ち、ETXで終わるメッセージです。STX、ETX、およびDLEを使用したJavaバイトメッセージの検証

上記の値に基づいてメッセージが有効かどうかを確認するにはどうすればよいですか?

 byte[] message = 
     { 0x02, 0x10, 0x02, 0x10, 0x10, 0x07, 0x08, 0x03, 0x14 }; 

私はこの特定の問題にアプローチする方法を理解する必要があります。どんなアイデアであれ、大いに訴えかけるだろう。ありがとう。

答えて

0

シンプルで高速なアプローチ - finite-state machine(オートマトン)を使用してください。
初期状態は「WaitForSTX」で、状態は「WaitForDLE」に変更され、次に「WaitForETX」に変更されます。オートマトンが「WaitForETX」状態にあり、ETXバイトを満たす場合、オートマトンは成功して終了する。

P.S. Javaのバイト配列に正規表現を適用できますか?

+0

あなたの返事をありがとうございます。私は見ていますが、私はバイト配列で正規表現を適用することはできません(完全にはわかりません)。 – Kristo

関連する問題