我有两个字符串:
string strone="what is your name?"
string strtwo="what is your name? what is your school name?"
这里的任何字符串都可能更大。我需要的是从strtwo
中提取不在strone
中的字符串。
我试过的是:
IEnumerable<string> str=strtwo.Except(strone); //(returns only first character ie w)
我尝试将strone
和strtwo
转换为字符串数组,但逐个循环遍历每个字符串将无法提供解决方案,因为strone
可能包含其他字符。
我需要的是在strtwo
中不在strone
内的{{1}}中依次提取整个字符串。
答案 0 :(得分:3)
您可以尝试以这种方式从第二个字符串中提取文本
string diff = strtwo.Replace(strone,"");
这应该输出你" what is your school name?"
,这是你正在寻找的其他信息,请用其他示例/案例更新问题。
答案 1 :(得分:3)
最简单的方法是使用Replace
:
string strone="what is your name?";
string strtwo="what is your name? what is your school name?";
string finalStr = strtwo.Replace(strone, "");
答案 2 :(得分:1)
如果您正在寻找的东西不仅仅是字符串的第一部分,而是在结尾处显示差异,那么请查看Diff Implementation,但基本上您正在寻找This Algorithm
但是,如果您只是想查看字符串末尾的差异,请查看@dasblinkenlight解决方案
答案 3 :(得分:1)
string strone="what is your name?"
string strtwo="what is your name? what is your school name?"
string extractedString = strtwo.Replace(strone, "");
答案 4 :(得分:1)
为什么不查看
的结果strtwo.Split(new String[]{strone}, StringSplitOptions.RemoveEmptyEntries)