目标

实现一个字节数组A包含另一个字节数组B的算法,顺序一致

原理

设置一个命中变量,初始化为0,记录两个数组连续连续命中的字节数量,命中数量等于字节数组B的长度时,返回true,如果循环到最后一个字节或者剩余字节长度小于字节数组B的长度时,命中变量都不等于字节数组B的长度,则返回false

算法

  • 1.如果字节数组B长度大于字节数组A的长度,直接返回false
  • 2.循环获取字节数组的每个字节值
  • 3.命中变量等于字节数组B的长度,返回true
  • 4.当前字节值是否等于索引为命中变量值的字节数组B中的字节值,如果是,命中变量自增1,continue到第2步继续下一个字节值的对比,否则继续第5步
  • 5.命中变量置0
  • 6.判断字节数组A的剩余字节数长度是否大于字节数组B的长度,如果大于则跳转到第2步执行循环体,否则跳出,返回false

实践

/*** 判断是否一个字节数组按顺序包含另一个字节数组* * @param pSrcByteArray* @param pSubByteArray* @return*/public static boolean isIncludeByteArray(byte[] pSrcByteArray, byte[] pSubByteArray) {boolean retValue = false;int lvSrcByteArrayLen = pSrcByteArray.length;int lvSubByteArrayLen = pSubByteArray.length;while(true) {if(lvSrcByteArrayLen < lvSubByteArrayLen) {break;}int lvHitByteNumberValue = 0;for(int i=0; i<lvSrcByteArrayLen; i++) {int tvByteValue = pSrcByteArray[i];if(lvHitByteNumberValue == pSubByteArray.length) {retValue = true;break;}if(tvByteValue == pSubByteArray[lvHitByteNumberValue]) {lvHitByteNumberValue++;continue;}lvHitByteNumberValue = 0;//剩余字节数int tvRemaindingByteLen = lvSrcByteArrayLen - i - 1;if(tvRemaindingByteLen < pSubByteArray.length) {break;}}break;}return retValue;}

Java:怎么判断一个字节数组包含另一个字节数组,并且字节顺序一致相关推荐

  1. java检查两个字符串是否包含,java判断一个字符串是否包含另外一个字符串,java另外一个,要检查一个字符串是否包含...

    java判断一个字符串是否包含另外一个字符串,java另外一个,要检查一个字符串是否包含 要检查一个字符串是否包含另外一个字符串需要使用indexOf()方法,如果indexOf方法返回大于等于0的值 ...

  2. java字符串中包含_怎么判断一个字符串是否包含另一个字符串

    第一步骤:判断一个字符串是否包含另一个字符串. 1.思路整理 首先我们可以借助于java中String类提供的indexOf方法 2.代码如下 public class TestString { pu ...

  3. C 判断一个字符串是否包含另一个字符串

    如何判断一个字符串是否包含另一个字符串? 思路:从一个字符串中提取出可能与另一个字符串相同的部分,再进行比较. 代码: #include <stdio.h> #include <st ...

  4. js判断字符串是否为空_每日一课 | Python 如何判断一个字符串是否包含另一个字符串?...

    在Python中,我们可以使用in运算符或str.find()来检查一个字符串是否包含另一个字符串. 1.运算符 name = "mkyong is learning python 123& ...

  5. 判断一个字符串是否包含另一个字符串(用java但是不能用index()这个函数)

    目录:  一.方法介绍  二.图示意  三.源代码 一.方法介绍 判断一个字符串str1是否包含另一个字符串str2:  1.取str2的第一个字符一次和str1的字符依次比较,知道找到相等的字符为止 ...

  6. Java 中判断一个字符串是否包含另外一个字符串的方法

    方法一:indexOf(String s) 可以配合indexOf(String s)的使用,如果包含,返回的值是包含该子字符串在父类字符串中起始位置:如果不包含必定全部返回值为-1 public v ...

  7. python判断一个列表是否包含另一个列表_Python判断一个list中是否包含另一个list全部元素的方法分析...

    Python判断一个list中是否包含另一个list全部元素的方法分析 本文实例讲述了Python判断一个list中是否包含另一个list全部元素的方法.分享给大家供大家参考,具体如下: 你可以用fo ...

  8. JAVA中判断一个字符串是否包含另一个字符串

    用indexOf()函数,不包含则返回-1,包含返回0: String str="ABC_001"; if(str.indexOf("ABC")!=-1){ S ...

  9. 关于java中判断一个点是否在一个长方形内和一个长方形是否包含另一个长方形或者两个相重叠的问题。

    案例代码 import java.util.Scanner; public class rhh {     public static void main(String[] args){        ...

最新文章

  1. ES6 for...of循环
  2. C++中的抽象类及纯虚函数的实现与否
  3. KBQA相关论文分类整理:简单KBQA和复杂KBQA
  4. zookeeper配置文件详解
  5. GDB调试qemu-kvm
  6. 利用微软的平台进行Office文档的在线查看
  7. a20添加usb2net的驱动方法
  8. 【MySQL】MySQL drop,truncate,delete 区别
  9. iOS 评论APP撰写评论
  10. Spring,SpringMVC,SpringBoot,SpringCloud有什么区别和联系?
  11. asm bin hex elf文件区别
  12. 六级病历对门诊电子病历系统功能要求的初步梳理
  13. mysql 源码阅读_mysql 源码阅读入口
  14. ietester测试本地html,网站浏览器兼容测试工具IETester
  15. 淘宝省钱_如何省钱和组装自己的电路板
  16. Kotlin:Outdated Kotlin Runtime问题修复
  17. 微信扫码点餐小程序怎么做,一步步教你
  18. 全云端万能小程序_百搜全云端万能门店小程序v4.0.13五端独家2次开发升级独立版...
  19. excel多窗口分屏并列显示
  20. 智能车扫线——斑马线识别

热门文章

  1. windows 修改远程桌面端口脚本
  2. python基础语法元素笔记_Jupyter笔记-Python语法基础(U.1)
  3. SimpleFOC(九)—— 霍尔电机控制
  4. 一只产品汪的低代码学习之路(一):ChatGPT眼中的低代码有多牛?
  5. Lake Shore—霍尔(磁性)传感器
  6. win10运行在哪里打开_第12期分享:Win10如何永久关闭自动更新?
  7. 利用python制作简单小闹钟
  8. BUUCTF-crypto(1-29)
  9. 前端开发过程中,经常遇到复制粘贴后自动空白一行,该如何解决这个问题哪?
  10. 微信小程序实现调查问卷表单