java将带未知数X的二进制数据进行切割

切割后的部分索引我已经完成了,但是切割的部分没有头绪,我觉得好复杂

img


不带X的数据切割规则就是,连续的1遇0结束,连续的0遇1结束
例如101110 切割后就是10 1110

img


带X的数据是X出现在切割首位,则X取值为X后面的数字
上图X就取值0

img


X出现的切割中间,则X取X前的数字
上图X就是1后的X取1,0后的X取0

取值后就可以进行上述不带X切割的步骤

不难呀,假设s是存放带x的二进制数据的字符串形式,用index表示当前扫描到的位置,用c表示当前段落里前一个有效数据(空格表示没有有效数据),用startPos记录当前段落的起始位置,最后切下来的段落存到一个List变量里就可以了