2012-07-23 62 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) 

結果呢?

相關問題