2012-07-23 50 views
1

我有两个字符串:提取字符串,它是存在于一个字符串,而不是其他

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

+3

你在寻找类似'string diff = strtwo.Replace(strone,“”)''的东西吗? – V4Vendetta 2012-07-23 11:02:16

+0

亚感谢这工作正常......但我正在寻找像更好的解决方案的东西,哪里可以是任何东西,更大或更小,但重要的是,strtwo中的字符串不是在strone中。 – user1502952 2012-07-23 12:05:04

回答

1

如果你想找的东西,比较不仅仅是字符串的第一部分,越来越显示DIFF上月底再看看在Diff Implementation,但基本上你想找的This Algorithm

但是,如果你只是寻找一个字符串的结尾的差异看@dasblinkenlight解决方案

+0

雅谢谢..我必须通过 – user1502952 2012-07-24 06:08:10

3

,你可以尝试提取从第二个字符串文本以这种方式

string diff = strtwo.Replace(strone,""); 

这SH请输出你" what is your school name?"这是你正在寻找的其他请与其他例子/案件更新问题。

3

最简单的方法是使用Replace

string strone="what is your name?"; 
string strtwo="what is your name? what is your school name?"; 

string finalStr = strtwo.Replace(strone, ""); 
1
string strone="what is your name?" 
string strtwo="what is your name? what is your school name?" 

string extractedString = strtwo.Replace(strone, ""); 
+0

'Replace'不会去kaboooom!如果没有找到替换文字,你可以避免包含检查 – V4Vendetta 2012-07-23 11:16:44

+0

@ V4Vendetta是你的权利不能帮助它,我本质上是防御:) – HatSoft 2012-07-23 11:17:39

+0

谢谢你们...... – user1502952 2012-07-24 06:09:36

1

为什么不看的

strtwo.Split(new String[]{strone}, StringSplitOptions.RemoveEmptyEntries) 

结果呢?

相关问题