在C# 中尋找較大字串中的所有子字串位置
處理大型字串時,尋找特定子字串的所有實例至關重要用於解析和數據分析。本文解決了查找所有此類實例並將其索引儲存在清單中的挑戰。
問題陳述
您需要分析一個大字串。在此字串中,您需要識別並儲存特定子字串每次出現的位置。假設範例字串是「extract」(me,i-have much.of]punctuation。」您希望在較大的字串中找到該子字串的所有出現位置,並將它們的索引添加到清單中。
解決方法
方法一:
可以使用C#中的IndexOf方法來定位但是,要查找所有出現的子字串,我們需要使用循環來迭代字串並繼續搜索,直到找不到更多實例。 >方法2:
或者,迭代器可以也可用於按順序生成索引:
public static List<int> AllIndexesOf(this string str, string value) { if (String.IsNullOrEmpty(value)) throw new ArgumentException("the string to find may not be empty", "value"); List<int> indexes = new List<int>(); for (int index = 0;; index += value.Length) { index = str.IndexOf(value, index); if (index == -1) return indexes; indexes.Add(index); } }
這兩個方法都可以輕鬆添加到任何字符串對象,從而可以方便地查找所有子字串位置,例如,以下行會尋找所有出現的位置。
以上是如何在 C# 中尋找較大字串中子字串的所有出現情況?的詳細內容。更多資訊請關注PHP中文網其他相關文章!