首頁 >後端開發 >C++ >如何在 C# 中尋找較大字串中子字串的所有出現情況?

如何在 C# 中尋找較大字串中子字串的所有出現情況?

Barbara Streisand
Barbara Streisand原創
2024-12-28 22:52:15687瀏覽

How Can I Find All Occurrences of a Substring within a Larger String in C#?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn