如何用C#查找byte[]里包含某个字符?

我现在通过串口获取到了一串数据大概是这样的buffer[](它是byte[]类型)={…0x34,0x33,0x00,0x3D,0x00,0x01,0x02,0x03,0... 我现在通过串口获取到了一串数据大概是这样的
buffer[](它是byte[]类型)={…0x34,0x33,0x00,0x3D,0x00,0x01,0x02,0x03,0x04,0x05,……}
怎么用C#实现找到从3D开始往后的8个数据?3D具体位置不知道~看string类型可以用.contian()方法,那byte[]类型呢??
展开
 我来答
xiangjuan314
推荐于2018-03-08 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2870万
展开全部
以下实现byte数组里面查找另一个byte数组在第一个数组里面的位置,可通过修改bb数组的值是否存在于b数组的值就可实现是否包含某个字符

public int GetIndexOf(byte[] b, byte[] bb)
{
if (b == null || bb == null || b.Length == 0 || bb.Length == 0 || b.Length<bb.Length)
return -1;

int i, j;
for (i = 0; i < b.Length - bb.Length + 1; i++)
{
if (b[i] == bb[0])
{
for (j = 1; j < bb.Length; j++)
{
if (b[i + j] != bb[j])
break;
}
if (j == bb.Length)
return i;
}
}
return -1;
}
李亚楠19820720
推荐于2018-03-09
知道答主
回答量:13
采纳率:0%
帮助的人:8.1万
展开全部
个人感觉,自己写个函数吧,用foreach去遍历下,判断是3D了就break
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laobishi080
2018-03-08 · TA获得超过760个赞
知道小有建树答主
回答量:164
采纳率:87%
帮助的人:44.7万
展开全部
先int i = 0;

然后遍历到符合buffer[i] == 0x3D

就break;

再for(int j=1;j<=8;j++)
输出buffer[i+j]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式