比較NSString與其他字符串不區分大小寫的最佳方法是什麼?如果它是其中一個字符串,那麼該方法應返回YES,否則返回NO。不區分大小寫比較字符串
2
A
回答
10
這裏有一個小的輔助功能:
BOOL isContainedIn(NSArray* bunchOfStrings, NSString* stringToCheck)
{
for (NSString* string in bunchOfStrings) {
if ([string caseInsensitiveCompare:stringToCheck] == NSOrderedSame)
return YES;
}
return NO;
}
當然,這可以爲不同的使用情況下大大優化。
如果,例如,你賺了很多針對恆定bunchOfStrings檢查,你可以使用一個NSSet
持有字符串的小寫版本,並使用containsObject:
:
BOOL isContainedIn(NSSet* bunchOfLowercaseStrings, NSString* stringToCheck)
{
return [bunchOfLowercaseStrings containsObject:[stringToCheck lowercaseString]];
}
2
只是爲了一些補充添加到尼古拉的回答是:
NSOrderedSame
如果你調用012被定義爲0
typedef NS_ENUM(NSInteger, NSComparisonResult) {NSOrderedAscending = -1L, NSOrderedSame, NSOrderedDescending};
所以對一個nil
對象,你會得到nil
。然後你比較nil
與NSOrderSame
(這是0),你會得到一個當然是錯誤的比賽。
此外,您將不得不檢查傳遞給caseInsensitiveCompare:
的參數是否必須不爲零。從documentation:
該值不能爲零。如果此值爲零,則行爲爲 未定義,並可能在未來版本的OS X中更改。
相關問題
- 1. 區分大小寫字符串比較
- 2. 區分大小寫字符串比較
- 3. 比較不區分大小寫字符串再算上重複
- 4. 不區分大小寫字符串數組比較
- 5. PostgreSQL:不區分大小寫的字符串比較
- 6. 不區分大小寫的字符串比較C++
- 7. c#文件路徑字符串比較不區分大小寫
- 8. Julia不區分大小寫的字符串比較
- 9. 比較字符串不區分大小寫
- 10. F#不區分大小寫字符串比較
- 11. 如何使字符串比較不區分大小寫?
- 12. Go不區分大小寫的字符串比較
- 13. 常量字符串不區分大小寫比較
- 14. 如何執行不區分大小寫的字符串比較?
- 15. 不區分大小寫的比較字符串與非字符串
- 16. php,mysql:比較字符串 - 區分重音和不區分大小寫
- 17. 如何比較EF中區分大小寫的字符串?
- 18. Resharper模式區分大小寫字符串比較
- 19. SQL區分大小寫的字符串比較
- 20. C#字符串比較忽略區分大小寫HTML標記
- 21. 與NSString區分大小寫的字符串比較問題
- 22. 與jQuery不區分大小寫比較?
- 23. 不區分大小寫的NSString比較
- 24. MVC3:CompareAttribute不區分大小寫比較
- 25. Drools:不區分大小寫比較?
- 26. Remove_If不區分大小寫字符串
- 27. 比較字符串忽略大小寫
- 28. 不區分大小寫的字符串比較在C#中不起作用?
- 29. 內置C++函數,使得兩個字符串不區分大小寫比較
- 30. 爲.net winforms應用程序進行字符串比較不區分大小寫
謝謝。我特別尋找像caseInsensitiveCompare: – 2010-07-11 09:12:46