2011-03-13 134 views
4

我想檢查一個字符串是否包含特定的字符串。C#String.Contains()故障?

簡單地說,這裏是我的代碼(這是該計劃的一小部分,我省略不相關的代碼):

string y = someValue; 
for(string x in someCollection) 
      { 
       if (x.Contains(y)) 
       { 
        Debug.WriteLine(x + " Contains " + y); 
       } 
       else 
       { 
        Debug.WriteLine(x + " Does Not Contain " + y); 
       } 
      } 

然而,這是我所得到的結果是:

"Alligator" Contains "Alligator" 
"Loves" Does Not Contain "Love" 
"To Eat You" Does Not Contain "You" 

那麼,怎麼過!?! Contains()僅在兩個字符串完全匹配時才返回true有些東西在這裏不正確...

ps。字符串x和y從文本文件中讀取,並且已經通過一些文本切割過程,如果這會幫助...

+1

您的示例字符串是您匹配的*精確*字符串嗎?我懷疑你有一些打印出來的Unicode字符串,但是由不同的字符組成。 – Gabe 2011-03-13 05:28:30

+0

文件中的文本是確切的字符串。我讀到這樣的記錄是這樣的: 「你」|「鱷魚」|「愛」\t「鱷魚」|「愛」|「吃你」 – tsong99 2011-03-13 05:34:09

+0

@Robert Levy @Gabe是的,我懷疑是相同的事情。那麼,我該如何檢查這些東西呢?問題與我的文本文件中的編碼格式有關嗎? (我只需在NotePad中輸入它並將其保存到我的程序中) – tsong99 2011-03-13 05:36:43

回答

18

您的輸出是正確的。你的期望是錯誤的。你的困惑在於引用字符。 "Loves"確實不包含"Love",但它確實包含"Love

+3

哇,我不得不承認,很好的接收。 – BoltClock 2011-03-13 05:31:18

+0

Ahhhh,廢話!這很尷尬。哈哈!非常感謝! :) – tsong99 2011-03-13 05:41:08

+0

哈!很好的關注細節。 – 2011-03-13 06:17:25