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 回答