byte[] one = { 0X00, 0X68, 0X73, 0X5f, 0X62, 0X61, 0X79, 0X00, 0X00 };
byte[] two = { 0X68, 0X73, 0X5f, 0X62, 0X61, 0X79 };
如何使用tow 分割one 获得一个byte[][]{ {0x00},{0x00,0x00} }
解决方案 »
- .net中,前台提交了信息,后台怎么实现声音提醒
- MDI子窗体调用父窗体共有方法执行结果与父窗体本身执行方法结果不一样
- 为什么用户控件中的格式不能显示
- C# 中的 ^ 是 什么运算符?
- 如何将数据库中的数据传送到pdf中
- 做了一个由C#编辑的简单聊天系统,可是一直无法运行,哪位高手可以帮帮忙?拜托
- 关于打包很简单的问题。
- 高手请进:请问listview的几个问题~~100分
- c#编桌面应用程序如何?
- 希望用类似的c# grivew控件完成多列图片动态信息显示
- dell笔记本在vs2013下单步调试F10失效
- Aspose.word导出表格的时候,builder.MoveToCell(0, 0, 1, 0)找不到表格怎么破??
{
class Program
{ static void Main(string[] args)
{
byte[] one = { 0X00, 0X68, 0X73, 0X5f, 0X62, 0X61, 0X79, 0X00, 0X00 };
byte[] two = { 0X68, 0X73, 0X5f, 0X62, 0X61, 0X79 };
var result = Split(one, two);
Console.WriteLine("分割位置:{0}-{1}, {2}-{3}", 0, result - two.Length - 1, result, one.Length - 1);
Console.WriteLine("................按任意键结束");
Console.ReadKey();
} /// <summary>
static int Split(byte[] x, byte[] s)
{
for (var i = 0; i < x.Length; i++)
{
var flag = true;
var k = i;
for (var j = 0; j < s.Length; j++, k++)
{
if (x[k] != s[j])
{
flag = false;
break;
}
}
if (flag)
return k;
}
return -1;
} }
}
如果要快速分割大数组,应该看正规的“算法、数据结构”教材中相关的 split 优化算法。