stringByReplacingOccurrencesOfString更有效的方法

时间:2013-07-31 07:48:45

标签: objective-c replace nsstring

是否有更有效的方法来剥离一系列不受欢迎的短语,在这种情况下是图像扩展?我知道可以使用这里使用的NSCharacterSet:Replace multiple characters in a string in Objective-C?但是对于整个短语

    NSString *title = [imagePath lastPathComponent];
    title = [title stringByReplacingOccurrencesOfString:@".JPG" withString:@""];
    title = [title stringByReplacingOccurrencesOfString:@".JPEG" withString:@""];
    title = [title stringByReplacingOccurrencesOfString:@".PNG" withString:@""];
    title = [title stringByReplacingOccurrencesOfString:@".jpg" withString:@""];
    title = [title stringByReplacingOccurrencesOfString:@".jpeg" withString:@""];
    title = [title stringByReplacingOccurrencesOfString:@".png" withString:@""];

2 个答案:

答案 0 :(得分:2)

NSString中有一个名为-stringByDeletingPathExtension的方法可用于删除扩展程序,如下所示:

NSString *title = [imagePath lastPathComponent];
NSString *titleMinusExtension = [title stringByDeletingPathExtension];

答案 1 :(得分:0)

假设您总是拥有一些给定的图像文件名,一些用户无法在文本框中输入任何内容,我只需使用文件名并始终删除最后一个.以及后续内容。

所以简而言之(没有代码,因为我不知道Objective C,你应该添加为标签):

  • 查找字符串中的最后一个.
  • 从找到的位置开始剥离所有内容。

这样你应该总是以一个干净的文件名结束,你不必进行多次查找,你不必担心修改文件名的其他部分(让我们假设还有另一个{{ 1}}在某处。)