如何在此NSString中使用NSRange?

时间:2012-03-15 19:31:22

标签: ios objective-c nsrange

我有以下NSString

productID = @"com.sortitapps.themes.pink.book";

最后,“书”可以是任何东西......“音乐”,“电影”,“游戏”等。

我需要找到粉红色一词之后的第三个句号,这样我就可以用其他东西替换最后一个“书”字。我如何使用NSRange执行此操作?基本上我需要这个:

partialID = @"com.sortitapps.themes.pink.";

3 个答案:

答案 0 :(得分:7)

您可以尝试向后搜索点并使用结果来获得所需的范围:

NSString *str = @"com.sortitapps.themes.pink.book";
NSUInteger dot = [str rangeOfString:@"." options:NSBackwardsSearch].location;

NSString *newStr =
   [str stringByReplacingCharactersInRange:NSMakeRange(dot+1, [str length]-dot-1)
                                withString:@"something_else"];

答案 1 :(得分:2)

好吧,虽然这不是查找字符的通用解决方案,但在您的特定情况下,您可以通过这样做“欺骗”并保存代码:

[productID stringByDeletingPathExtension];

基本上,我将名称视为文件名,并为此目的使用NSString方法删除最后一个(也是最后一个)扩展名。

答案 2 :(得分:2)

您可以使用-[NSString componentsSeparatedByString:@"."]拆分成组件,使用所需的值创建新数组,然后使用[NSArray componentsJoinedByString:@"."]将修改后的数组再次加入字符串。