在 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中文网其他相关文章!