2011-01-24 79 views
2

我有以下的代碼,其中frequencyOfReminders = "2 days"C#字符串操作

dailyReminders = frequencyOfReminders.IndexOf("day", StringComparison.OrdinalIgnoreCase) >= 0; 

我想dailyReminders是真的,我應該用下面的呢?

dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase) >= 0; 

我應該更清楚。我有字符串frequencyOfReminders =「2天」,例如 ,我希望dailyreminders在frequencyOfReminders中發現字符串「day」時返回true,其中返回true的其他值爲:daily,3 days,1 day,..等

+0

能否請你格式化代碼部分的代碼? – RQDQ 2011-01-24 17:15:51

回答

5

String.Contains方法返回一個布爾值,所以> = 0不會編譯。

應該是這樣的:

dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase); 

然而,在這種情況下,我會向精益包含了可讀性。

編輯:

哦,你要搜索多個搜索字詞。在這種情況下,做到這一點的一種方法是使用多個包含電話(簡單):

dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase) 
       || frequencyOfReminders.Contains("daily", StringComparison.OrdinalIgnoreCase); 

另一種方式是進入正則表達式(完全解釋會採取一些工作這一做法),但這裏是一個鏈接,解釋它:

http://www.regular-expressions.info/dotnet.html

正則表達式是令人難以置信的強大,但有一個學習曲線。

0
dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase) 

不要求> = 0。在這兩種情況下,結果都是一樣的。

0

字符串函數 「包含」 並返回一個布爾值,所以像

boolean dailyReminders = frequencyOfReminders.Contains("day"); 

將設置dailyReminders爲true。

0

IndexOf返回-1時,子未找到這樣:

dailyReminders = frequencyOfReminders.IndexOf("day", StringComparison.OrdinalIgnoreCase) != -1