21

我有一根绳子!

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

我想做的是:

  1. 假设字符串中的第一个字符在索引 0 处。转到第 11 个字符(在上面的例子中是 'l'),然后向后找到第一个出现的空格的位置(在上面的字符串中,第一个出现的空格的位置如果我们从“l”向后退,则位于位置 10)。让我们将此空间的索引称为“leSpace”,其值为 10。
  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 回答