I have the following NSString
:
productID = @\"com.sortitapps.themes.pink.book\";
At the end, \"book\" can be anything.... \"music\
You can use -[NSString componentsSeparatedByString:@"."]
to split into components, create a new array with your desired values, then use [NSArray componentsJoinedByString:@"."]
to join your modified array into a string again.
You can try a backward search for the dot and use the result to get the desired range:
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"];
Well, although this isn't a generic solution for finding characters, in your particular case you can "cheat" and save code by doing this:
[productID stringByDeletingPathExtension];
Essentially, I'm treating the name as a filename and removing the last (and only the last) extension using the NSString method for this purpose.