我已經創建了搜索算法來搜索Text.I中的任何字符串,只是希望計算返回的匹配項,並且只想通過一個鍵進行搜索。我已經通過搜索大小爲2 MB的文件中的單個字符'a'來測試性能,並且需要大約7秒。可以請您提出更好的算法或者如果我在這裏丟失了任何東西。本搜索算法的問題C#
public int SearchText(string fromString,string searchText,bool isCaseSensitive)
{
int searchTextLength=searchText.Length;
if (!isCaseSensitive)
{
fromString = fromString.ToLower();
searchText = searchText.ToLower();
}
int matchCount=0;
while (fromString.Length > searchText.Length)
{
int firstMatchIndex=fromString.IndexOf(searchText[0]);
if (firstMatchIndex > -1)
{
if (searchText == fromString.Substring(firstMatchIndex, searchTextLength))
matchCount++;
fromString = fromString.Remove(0, firstMatchIndex + searchTextLength);
}
else
break;
}
return matchCount;
}
爲什麼你沒有使用string.contains()... ????? – Aravind
因爲我還需要計數 – Rishikesh