21

文字列内の部分文字列の範囲を取得する方法を見つけようとしています。範囲とは、部分文字列の開始位置と終了位置を意味します。したがって、次の文字列の例がある場合:

NSString *testString=@"hello everyone how are you doing today?Thank you!";

(この例で) 探している部分文字列が「お元気ですか」の場合、開始範囲は 15 で終了範囲は 31 である必要があります。

  (15, 31)

プログラムでこれを行う方法を誰か教えてもらえますか? ありがとうございました!

4

3 に答える 3

53

このメソッド-rangeOfStringを使用して、文字列内の部分文字列の位置を見つけることができます。次に、範囲の場所を NSNotFound と比較して、文字列に実際に部分文字列が含まれているかどうかを確認できます。

NSRange range = [testString rangeOfString:@"how are you doing"];

if (range.location == NSNotFound) {
    NSLog(@"The string (testString) does not contain 'how are you doing' as a substring");
}
else {
    NSLog(@"Found the range of the substring at (%d, %d)", range.location, range.location + range.length);        
}
于 2013-06-08T10:22:33.723 に答える
12

それはかなり簡単です。「こんにちは、皆さん、今日はお元気ですか?ありがとうございます!」という文字列を検索したいとします。「お元気ですか」のために。

あなたは、最初の文字と最後の文字の位置が必要だと言います。

NSString *testString=@"hello everyone how are you doing today?Thank you!";

NSRange range = [testString rangeOfString:@"how are you doing"];

NSUInteger firstCharacterPosition = range.location;
NSUInteger lastCharacterPosition = range.location + range.length;

これで最後の 2 つの変数ができました。

于 2013-06-08T10:55:32.190 に答える
2

の組み込みメソッド部分を使用しますNSString

[testString rangeOfString:@"hello how are you doing"]

ドキュメント: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/doc/uid/20000154-rangeOfString_

于 2013-06-08T10:22:25.637 に答える