我發現我的程序正在搜索大量冗長的字符串(20,000+),試圖找到一個特定的獨特短語。什麼是最高效的(讀取時間)字符串搜索方法? (C#)
在C#中這樣做的最有效方法是什麼?
下面是當前的代碼,其工作原理是這樣的:
- 搜索在startPos開始,因爲目標區域有些從一開始就
- 它遍歷字符串,它會檢查,如果每個步驟中去除從那一點開始的子串從startMatchString開始,這是指示已經找到目標字符串的開始。 (目標字符串varys的長度)。
- 從這裏創建一個新的子串(斬去標記目標字符串的開頭的11個字符)並搜索endMatchString
我已經知道,這是一個可怕的複雜和可能非常inefficent算法。 什麼是更好的方式來完成相同的結果?
string result = string.Empty;
for (int i = startPos; i <= response.Length - 1; i++)
{
if (response.Substring(i).StartsWith(startMatchString))
{
string result = response.Substring(i).Substring(11);
for (int j = 0; j <= result.Length - 1; j++)
{
if (result.Substring(j).StartsWith(endMatchString))
{
return result.Remove(j)
}
}
}
}
return result;
搜索(查找endMatchString)的第二部分是不特定的重要的是距離距離startMatchString(10-90個字符) – 2009-03-01 11:36:29