获取NSString中字符的索引,使用偏移量并使用Objective-C中的子字符串

Uma*_*oon 21 substring objective-c nsstring ios nsrange

我有一根绳子!

   NSString *myString=[NSString stringWithFormat:@"This is my lovely string"];
Run Code Online (Sandbox Code Playgroud)

我想做的是:

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

    [myString substringFromIndex:leSpace]
    
    Run Code Online (Sandbox Code Playgroud)

......我希望我解释得很好.请帮助,你能写一个片段或什么来帮助我完成这项任务吗?

zap*_*aph 51

- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)aRange
Run Code Online (Sandbox Code Playgroud)

对于选项使用: NSBackwardsSearch

NSRange range = [myString rangeOfString:@" " options:NSBackwardsSearch range:NSMakeRange(0, 11)];
Run Code Online (Sandbox Code Playgroud)

例:

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);
Run Code Online (Sandbox Code Playgroud)

NSLog输出:

range.location: 10
substring: 'lovely string'
Run Code Online (Sandbox Code Playgroud)

当然应该有错误检查range.location不相等NSNotFound