4

この例では、文字列をC#で別の文字列と比較したい

 string Text1 = "123bob456";
 string Text2 =  "bobishere";

私が言いたいのは、3 つ以上 (またはそれ以上) の文字が連続して一致する場合、true を返すということです。この場合、どちらにも「bob」が含まれているため、true になります。
しかし、これを行う方法がわかりません。助けてください。これが繰り返しの質問である場合は申し訳ありません。言葉遣いがわかりません。

4

2 に答える 2

1

この拡張機能は動作します:

public static bool ContainsSubstring(this string string1, string string2, int minLength, StringComparison comparison)
{
    if (minLength <= 0) throw new ArgumentException("Minimum-length of substring must be greater than 0", "minLength");
    if (string.IsNullOrEmpty(string1) || string1.Length < minLength) return false;
    if (string.IsNullOrEmpty(string2) || string2.Length < minLength) return false;

    for (int i = 0; i < string1.Length - minLength + 1; i++)
    {
        string part1 = string1.Substring(i, minLength);
        if (string2.IndexOf(part1, comparison) > -1)
            return true;
    }
    return false;
}

例えば:

string Text1 = "123bob456";
string Text2 =  "bobishere";
bool contains = Text1.ContainsSubstring(Text2, 3, StringComparison.CurrentCultureIgnoreCase);  // true

デモ

于 2013-05-04T21:11:32.947 に答える