0

単語の末尾から特定の文字列を削除するために、次のようなことを行うことはできますか?

public static HashSet<string> stringtoremove = new HashSet<string>
         ...............
         .................
    public static string stepone(this string word)
        {
            if (stringtoremove(word.EndsWith))
            {
             word =   ..................................;
            }
            return word;
        } 

試しましたが、うまくいきません。コードに何かが足りませんでしたか?前もって感謝します。

4

3 に答える 3

2

最良のオプションは、正規表現を使用することです。Replace メソッドを参照してください。

string input = "test testabc test123 abc abctest";
string pattern = @"(abc\b)";
string replacement = "";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);

Console.WriteLine("Original String: {0}", input);
Console.WriteLine("Replacement String: {0}", result);
于 2012-05-10T09:01:19.563 に答える
1

HashSet<String>与えられた文字列パラメーターがこれらの単語のいずれかで終わっているかどうかを実際に調べたいと思います。その場合は、文字列の末尾から削除します。

FirstOrDefault指定された単語の終わりでもあるセット内の最初の文字列を決定するために使用できます。

var firstMatch = stringtoremove.FirstOrDefault(str => word.EndsWith(str));
if (firstMatch != null)
    return word.Substring(0, word.Length - firstMatch.Length);
else
    return word;
于 2012-05-10T09:06:51.313 に答える
0

String.TrimEndメソッドを使用しないのはなぜですか?

word = word.TrimEnd(charsToTrim)
于 2012-05-10T09:08:22.423 に答える