在C# 中尋找較大字串中子字串的所有位置
尋找較大字串中特定子字串的所有出現的任務是程式設計中常見的挑戰。在 C# 中,IndexOf 方法提供了一種簡單的方法,但它無法捕獲子字串的多個實例。
更好的替代方法是利用擴充方法。這是一個實作:
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); } }
要使用此擴充方法,只需匯入它所在的命名空間並直接在字串上呼叫它:
List<int> indexes = "fooStringfooBar".AllIndexesOf("foo");
此方法有效地識別較大字串中的子字串,提供其位置的完整清單。
以上是如何使用 C# 尋找字串中子字串的所有出現位置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!