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;
}
/// </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;
}
相关文章推荐
- selenium cant start a new browser(ie7):java.lang.StringIndexOutOfBoundsException: String index out of range: -1
- com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException:Invalid byte 2 of 2-byte
- Java中的String中的substring、indexof()、lastindexof()和split
- type … is table of number index by binary_integer
- String.indexOf方法
- 生成web service client时Error generating services (String index out of range: 3)
- 判断字符串中是否存在的几种方案:string.indexof、string.contains、list.contains、list.any几种方式效率对比
- stringByReplacingOccurrencesOfString
- java.lang.StringIndexOutOfBoundsException: String index out of range: 0错误的原因 3ff0
- string里的IndexOf、LastIndexOf、Substring的详解(意义和用法)
- string里的IndexOf、LastIndexOf、Substring的详解(意义和用法)
- Java String indexOf()方法
- JS:1.8,字符串(string)对象(length,indexOf(),lastIndexOf(),replace(),match(),toUpperCase(),toLowerCase())
- JavaSE8基础 String lastIndexOf 反向查找 返回字符在字符串中第一次出现时的索引值
- IOS -- Swift 字符串替换 stringByReplacingOccurrencesOfString
- day13/MyIndexOfString.java
- 模仿String.indexOf,判断一个字符串是否包含另一个字符串
- JS中string方法中常用方法之八:String.prototype.indexOf()
- [Android] Use Jsoup to grab the web data and process the data with string.indexOf()
- NSString中的stringByReplacingOccurrencesOfString