您的位置:首页 > 其它

Indexof String By Byte[]

2009-12-24 14:34 357 查看
/// <summary>在字节数组里搜索字符串key第一次出现的位置
/// </summary>
/// <param name="b1">字节数组</param>
/// <param name="key">字符串</param>
/// <returns>搜索为空返回-1</returns>
public static int BytesIndexOf(byte[] b1, string key)
{
byte[] keyByte = System.Text.Encoding.Default.GetBytes(key);

for (int i = 0; i < b1.Length; i++)
{
if (b1[i] == keyByte[0] && i + keyByte.Length < b1.Length)
{
bool tag = true;
for (int find = 1; find < keyByte.Length - 1; find++)
if (b1[i + find] != keyByte[find]) tag = false;
if (tag) return i;
}
}
return -1;
}

/// <summary>在字节数组里从指定位置开始搜索字符串key第一次出现的位置
/// </summary>
/// <param name="b1">字节数组</param>
/// <param name="start">开始搜索位置</param>
/// <param name="key">字符串</param>
/// <returns>搜索为空返回-1</returns>
public static int BytesIndexOf(byte[] b1, int start, string key)
{
byte[] keyByte = System.Text.Encoding.Default.GetBytes(key);

for (int i = start; i < b1.Length; i++)
{
if (b1[i] == keyByte[0] && i + keyByte.Length < b1.Length)
{
bool tag = true;
for (int find = 1; find < keyByte.Length - 1; find++)
if (b1[i + find] != keyByte[find]) tag = false;
if (tag) return i;
}
}
return -1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: