提取一个字符串而不是其他字符串中的字符串

时间:2012-07-23 10:57:36

标签: c# string

我有两个字符串:

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)

我尝试将stronestrtwo转换为字符串数组,但逐个循环遍历每个字符串将无法提供解决方案,因为strone可能包含其他字符。

我需要的是在strtwo中不在strone内的{{1}}中依次提取整个字符串。

5 个答案:

答案 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)