在字串中檢索字串是否存在:從“Qt QString::contains()”到”iOS objective-c NSRange結構的.location”
阿新 • • 發佈:2019-02-19
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)