2012-06-28 3 views
15

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

私は次の方法で場所を探しています。

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

searchKeywordstring内のサブストリングである場合、これはindex:2147483647を返します。

私は205のようなインデックス値をどのように得ることができますか?

答えて

54

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); 
} 
+0

おかげであなたを助けること - ケビンバラード@助けをします。あなたがその範囲の基盤上で部分文字列を選択する方法を教えてください。例えばもちろん、ギリシャがトルコの侵略と征服を受けているときに、最も安心してギリシャの財産を確保するためには、トルコ人と取引するのが適切かどうか尋ねなければならない。ここで私はギリシャの場所を見つけたので、そのギリシャ語の前後に「部分文字列」の1〜2語を選びたいと思っています。ギリシャがトルコ語の時のように。あなたは助けてください! –

+0

@ShaheenRehman:おそらく '-enumerateSubstringsInRange:options:usingBlock:' APIを使いたいと思うでしょう。これはあなたに個々の言葉を与えることができます。 –

+0

- @ Kevin Ballardさんに、 '-enumerateSubstringsInRange:options:usingBlock:' APIのコード例を教えてください。 –

8
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]; 

これは....

+0

ありがとう - @ケビンバラードは助けになる。あなたがその範囲の基盤上で部分文字列を選択する方法を教えてください。例えばそして、もちろん、ギリシャがトルコの侵略と征服を受けているとき、最も安心してギリシャの財産を得るためには、トルコ人と取引するのが適切かどうか尋ねる必要があります。そのギリシャ語の前後に「部分文字列」の1つまたは2つの単語を選択します。ギリシャがトルコ語の時のように。あなたは助けてください! –

+0

あなたはそれを使用できます.... [string substringToIndex:rangeOfYourString.location]; 私はコード内で編集中です... – Abhishek

+0

ありがとうございます - @ Abhishekそれは私のために働く '[string substringFromIndex:range.location];' –

関連する問題