我有一个带有文字“HELLO”的字符串(String1)。
现在我想检查String2是否有任何String1字母。 如果是,我想删除String2中的那个字母。我怎么能这样做?
答案 0 :(得分:14)
尝试使用 Linq ;检查typescript 2.0
中是否有firstString
的任何字符:
secondString
从 bool result = firstString.Intersect(secondString).Any();
firstString
个字符
secondString
修改: string result = string.Concat(secondString.Except(firstString));
的副作用:它会从Except
中删除重复同样,请参阅下面的Ivan Stoev的评论。保留重复项
secondString
答案 1 :(得分:0)
自我解释:
string a = "HELLO";
string b = "GOODBYE";
foreach (char c in a.ToCharArray())
{
if (b.Contains(c)) { b = b.Replace(c.ToString(), string.Empty); }
}
输出:b =" GDBY"
答案 2 :(得分:0)
创建助手,如下所示:
IEnumerable<Tuple<char, int>> IndexDistinct(IEnumerable<char> source)
{
var D = new Dictionary<char, int>();
foreach (var c in source)
{
D[c] = D.ContainsKey(c) ? (D[c] + 1) : 0;
yield return Tuple.Create(c, D[c]);
}
}
现在在类似函数中调用helper方法:
string removeMatch(string str1, string str2)
{
return new string(
IndexDistinct(str1)
.Except(IndexDistinct(str2))
.Select(x => x.Item1)
.ToArray());
}
答案 3 :(得分:0)
这可能是最短的方式
var str1 = "Hello World";
var str2 = "Hello Word Again";
var result = string.Joing("", str2.Except(str1));
Console.WriteLine(result); //Again