Ios 如何将NSRange与此NSString一起使用?
我有以下Ios 如何将NSRange与此NSString一起使用?,ios,objective-c,nsrange,Ios,Objective C,Nsrange,我有以下NSString: productID = @"com.sortitapps.themes.pink.book"; 最后,“书”可以是任何东西。。。。“音乐”、“电影”、“游戏”等 我需要找到单词pink之后的第三个句号,这样我就可以用其他单词替换最后一个“book”单词。如何使用NSRange执行此操作?基本上我需要这个: partialID = @"com.sortitapps.themes.pink."; 虽然这不是查找字符的通用解决方案,但在您的特定情况下,您可以通过执行以下
NSString
:
productID = @"com.sortitapps.themes.pink.book";
最后,“书”可以是任何东西。。。。“音乐”、“电影”、“游戏”等
我需要找到单词pink之后的第三个句号,这样我就可以用其他单词替换最后一个“book”单词。如何使用NSRange执行此操作?基本上我需要这个:
partialID = @"com.sortitapps.themes.pink.";
虽然这不是查找字符的通用解决方案,但在您的特定情况下,您可以通过执行以下操作“作弊”并保存代码:
[productID stringByDeletingPathExtension];
本质上,我将名称视为一个文件名,并为此目的使用NSString方法删除最后一个(且仅最后一个)扩展名。您可以使用
-[NSString ComponentsParatedBysString:@.”]
将其拆分为组件,使用所需的值创建一个新数组,然后使用[NSArray componentsJoinedByString:@]
再次将修改后的数组加入字符串。您可以尝试反向搜索点并使用结果获得所需的范围:
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"];
尽管NSRange是解决此问题的正确解决方案,但我最终还是使用了您的解决方案,因为它更易于理解和操作。之所以不应该使用这种方法,是因为Apple/iOS不能保证数组的顺序是正确的(尽管在实践中总是如此)。实际上,from:数组中的子字符串按照它们在接收器中的顺序出现。是的,我的答案是关于这个问题的:)