1

假设我有:

this - is an - example - with some - dashes

NSRange将使用 `rangeOfString:@"-" 获取“-”的第一个实例,但如果我只想要最后一个呢?

我正在寻找与 in 类似的lastIndexOf东西JS谢谢!

4

2 回答 2

6

您可以传递给的选项之一[NSString rangeOfString: options:]是 NSBackwardsSearch (它将为您提供您正在查看的字符串中的最后一项)。

于 2012-02-02T16:31:12.740 回答
2

rangeOfString 方法还有另一种变体:

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

这使您可以指定要在其中搜索的范围,因此您可以在循环中找到每个范围,然后将其从搜索范围中排除并重试,直到没有更多匹配项为止。

根据您要执行的操作,您可能会更幸运地使用它:

NSArray *components = [string componentsSeparatedByString:@" - "];

这会将您的字符串拆分为由 @" - " 分隔的每个部分,并将它们返回到一个数组中 - 然后您可以使用 [components lastObject]; 获取最后一个。

还有一个选择是使用 NSScanner,它是为遍历字符串而设计的,在你走的时候抓取令牌。

于 2012-02-02T16:41:58.890 回答