嗨,我在我的项目中使用C#语言,我试图得到如下输出。
string str1 = "Cat meet's a dog has";
string str2 = "Cat meet's a dog and a bird";
string[] str1Words = str1.ToLower().Split(' ');
string[] str2Words = str2.ToLower().Split(' ');
var uniqueWords = str2Words
.Except(str1Words)
.Concat(str1Words.Except(str2Words))
.ToList();
这给了我put has,and,a,bird,这是正确的,但我想要的是下面这样的东西
has -存在于第一个字符串中而不存在于第二个字符串中
还有一只鸟--不是第一串,而是第二串
例如,第二个用户案例
String S1 = "Added"
String S2 = "Edited"
这里提出的应该是
添加-存在于第一个字符串中而不存在于第二个字符串中
编辑-不存在于第一个字符串中,但存在于第二个字符串中
我希望有一些迹象,出现在第一个而不是第二个,出现在第二个而不是第一个,比较应该是逐字逐句,而不是逐字逐句。有人能帮我一下吗。如果你能帮忙的话,我将不胜感激。谢谢
2条答案
按热度按时间cs7cruho1#
我建议用匹配的词
设word是字母和撇号的序列
在 * 正则表达式 * 的帮助下(请注意,拆分不考虑标点符号,因此
cat
cat,
和cat!
将被视为三个不同的单词),然后查询两个给定字符串的匹配:演示:
输出量:
Fiddle
如果你想要一个冗长的输出:
输出量:
c3frrgcw2#
查找
str2Words
中不存在于str1Words
中的单词。查找
str1Words
中不存在于str2Words
中的单词。由于您需要分别使用这两个结果,因此需要避免将它们连接在一起,而是在每个结果上使用Join以获得空格分隔的结果,并附加您为它们计划的“present”附录。