【问题标题】:Getting index of a character in NSString with offset & using substring in Objective-C在Objective-C中使用偏移量和使用子字符串获取NSString中字符的索引
【发布时间】:2011-12-07 15:48:51
【问题描述】:
我有一个字符串!
NSString *myString=[NSString stringWithFormat:@"This is my lovely string"];
我想做的是:
- 假设字符串中的第一个字符在索引 0 处。转到第 11 个字符(在上面的例子中是 'l'),然后向后找到第一个出现的空格的位置(在上面的字符串中,位置如果我们从“l”向后退,第一个出现的空间位于位置 10)。让我们将此空间的索引称为“leSpace”,其值为 10。
-
使用 ... 将剩余的字符串子串成一个新字符串
[myString substringFromIndex:leSpace]
...我希望我已经解释得很好。请帮忙,你能写一个sn-p之类的东西来帮助我完成这个任务吗?
【问题讨论】:
标签:
objective-c
ios
nsstring
substring
nsrange
【解决方案1】:
- (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