使用offset&获取NSString中字符的索引在Objective-C中使用子字符串

时间:2011-12-07 15:48:52

标签: objective-c ios nsstring substring nsrange

我有一个字符串!

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

我想做的是:

  1. 假设字符串中的第一个字符是索引0.转到第11个字符(在上面的情况下是'l'),并找到第一个出现的空格向后的位置(在上面的字符串中,如果我们从'l'后退,则第一个出现的空间位于第10位。让我们称这个空间'leSpace'的索引值为10。
  2. 使用...

    将剩余字符串子串到新字符串
    [myString substringFromIndex:leSpace]
    
  3. ......我希望我解释得很好。请帮助,你能写一个片段或什么来帮助我完成这项任务吗?

1 个答案:

答案 0 :(得分: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