从单词c#的末尾删除特定字符串

时间:2012-05-10 08:57:02

标签: c# c#-4.0

我可以执行以下操作来删除单词末尾的特定字符串吗?

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

我试过但它不起作用。我错过了我的代码吗?提前致谢。

3 个答案:

答案 0 :(得分:2)

最好的选择是使用正则表达式;看看Replace method

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);

答案 1 :(得分: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;

答案 2 :(得分:0)

为什么不使用String.TrimEnd方法?

word = word.TrimEnd(charsToTrim)