web-dev-qa-db-ja.com

NSString内の部分文字列の位置

NSString内の部分文字列の位置/インデックスを取得するにはどうすればよいですか?

次の方法で場所を検索しています。

NSRange range = [string rangeOfString:searchKeyword];
NSLog (@"match found at index:%u", range.location);

これは、searchKeywordstring内の部分文字列の場合、index:2147483647を返します。

20または5のようなインデックス値をどのように取得できますか?

19
Shaheen Rehman

2147483647NSNotFoundと同じです。つまり、検索した文字列(searchKeyword)が見つかりませんでした。

NSRange range = [string rangeOfString:searchKeyword];
if (range.location == NSNotFound) {
    NSLog(@"string was not found");
} else {
    NSLog(@"position %lu", (unsigned long)range.location);
}
59
Lily Ballard
NSString *searchKeyword = @"your string";

NSRange rangeOfYourString = [string rangeOfString:searchKeyword];

if(rangeOfYourString.location == NSNotFound)
{
     // error condition — the text searchKeyword wasn't in 'string'
}
else{
     NSLog(@"range position %lu", rangeOfYourString.location);
}

NSString *subString = [string substringToIndex:rangeOfYourString.location];

これはあなたを助けるかもしれません...

9
Abhishek