21

紐あります!

   NSString *myString=[NSString stringWithFormat:@"This is my lovely string"];

私がやりたいことは次のとおりです。

  1. 文字列の最初の文字がインデックス 0 であると仮定します。11 番目の文字 (上記の場合は「l」) に移動し、最初に発生するスペースの位置を逆方向に見つけます (上記の文字列では、最初に発生するスペースの位置'l' からさかのぼると、位置は 10 になります)。このスペースのインデックスを 10 の値を持つ 'leSpace' としましょう。
  2. ... を使用して、残りの文字列を新しい文字列に部分文字列化します。

    [myString substringFromIndex:leSpace]
    

...よく説明できたと思います。助けてください。このタスクを実行するのに役立つスニペットまたは何かを書いてもらえますか?

4

1 に答える 1

51
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)aRange

オプションには次を使用します。NSBackwardsSearch

NSRange range = [myString rangeOfString:@" " options:NSBackwardsSearch range:NSMakeRange(0, 11)];

例:

NSString *myString=[NSString stringWithFormat:@"This is my lovely string"];
NSRange range = [myString rangeOfString:@" " options:NSBackwardsSearch range:NSMakeRange(0, 11)];
NSLog(@"range.location: %lu", range.location);
NSString *substring = [myString substringFromIndex:range.location+1];
NSLog(@"substring: '%@'", substring);

NSLog 出力:

range.location: 10
substring: 'lovely string'

もちろん、range.location等しくないエラーチェックがあるはずですNSNotFound

于 2011-12-07T15:52:04.307 に答える