1. 程式人生 > >在字串中檢索字串是否存在:從“Qt QString::contains()”到”iOS objective-c NSRange結構的.location”

在字串中檢索字串是否存在:從“Qt QString::contains()”到”iOS objective-c NSRange結構的.location”


Qt

 函式QString::startsWith()判斷一個字串是否以某個字串開頭。此函式具有 兩個引數,第一個引數指定了一個字串,第二個引數指定是否大小寫敏感(默 認情況下,是大小寫敏感的),例如:

QString str="Welcome to you! ";
str.startsWith("Welcome",Qt::CaseSensitive); //返回true; 
str.startsWith("you",Qt::CaseSensitive); //返回false;

函式QString::contains()判斷一個指定的字串是否出現過,例如:
QString str=" Welcome to you! ";
str.contains("Welcome",Qt::CaseSensitive); //返回true;


objective-c:

如果你要查詢的字串()在一個目標字串(草垛),NSRange結構的location成員將被置為從零開始的索引用來表示第一個針在草垛中的位置。如果草垛中不包含針,location值會給設為NSNotFound。我們來看這個例子:

NSString *haystack = @"My Simple String"; 
NSString *needle = @"Simple";
NSRange range = [haystack rangeOfString:needle]; 
if (range.location == NSNotFound) {
/* Could NOT find needle in haystack */
}
 else {
/* Found the needle in the haystack */ 
NSLog(@"Found %@ in %@ at location %lu", needle,
haystack,(unsigned long)range.location); 
}

NSRange range = [haystack rangeOfString:needle];可換為

NSRange range = [haystack rangeOfString:needle options:NSCaseInsensitiveSearch]; 


其中:

NSCaseInsensitiveSearch:不區分大小寫比較 

NSLiteralSearch:進行完全比較,區分大小寫 

NSNumericSearch:比較字串的字元個數,而不是字元值。

Tips:用來查詢的 NSString類的rangeOfString方法預設是大小寫敏感的。

現將NSString *needle = @"Simple"改為

NSString *needle = @"simple",即s改為小寫,進行驗證,執行結果如下。




(NSRange location擴充套件閱讀:http://blog.csdn.net/grass_dcm/article/details/7896862)