我可以执行以下操作来删除单词末尾的特定字符串吗?
public static HashSet<string> stringtoremove = new HashSet<string>
...............
.................
public static string stepone(this string word)
{
if (stringtoremove(word.EndsWith))
{
word = ..................................;
}
return word;
}
我试过但它不起作用。我错过了我的代码吗?提前致谢。
答案 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)