NSString
内の部分文字列の位置/インデックスを取得するにはどうすればよいですか?
次の方法で場所を検索しています。
NSRange range = [string rangeOfString:searchKeyword];
NSLog (@"match found at index:%u", range.location);
これは、searchKeyword
がstring
内の部分文字列の場合、index:2147483647
を返します。
20
または5
のようなインデックス値をどのように取得できますか?
2147483647
はNSNotFound
と同じです。つまり、検索した文字列(searchKeyword
)が見つかりませんでした。
NSRange range = [string rangeOfString:searchKeyword];
if (range.location == NSNotFound) {
NSLog(@"string was not found");
} else {
NSLog(@"position %lu", (unsigned long)range.location);
}
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];
これはあなたを助けるかもしれません...