如何在Objective c iphone中的另一个字符串中附加一个字符串

时间:2012-12-12 05:50:26

标签: ios objective-c cocoa-touch

我正在处理包含jpg,png和gif扩展图像的图像数组。我需要在扩展名之前向数组中的每个图像追加一个字符串@“ - Add”。如何实现这一点。 例如:我有一个图像DSC004.jpg,我想追加字符串“-Add”,这样我的图像名称就变成了DSC004-Add.jpg。?????

我想删除扩展名,附加必需的字符串然后再附加扩展名。但是我的图像数组与每个图像名称都有不同的扩展名.PLs帮助我

7 个答案:

答案 0 :(得分:15)

最完整和最通用的方式,但不是最简单的方式是这样的:

NSString *filename = @"DSC004.jpg";
NSString *ext = [filename pathExtension];
NSString *basename = [filename stringByDeletingPathExtension];
NSString *updated = [basename stringByAppendingString:@"-Add"];
NSString *finalName = [updated stringByAppendingPathExtension:ext];

此方法适用于完整路径名或文件名以及名称中包含多个句点的文件。

答案 1 :(得分:2)

NSString *str = @"ajdgl.jpg";
NSArray *arr = [str componentsSeparatedByString:@"."];
NSString *newStr  = [NSString stringWithFormat:@"%@-add%@",[arr objectAtIndex:0],[arr objectAtIndex:1]];

答案 2 :(得分:2)

  NSString *str = @"ajdgl.jpg";
        NSArray *array = [str componentsSeparatedByString:@"."];
        NSString *newStr;
        for (int i=0; i<[array count]-1; i++) {
            newStr = [NSString stringWithFormat:@"%@.%@",newStr,[array objectAtIndex:i]];
        }
        NSString *UpdatedName  = [NSString stringWithFormat:@"%@-add.%@",newStr,[array objectAtIndex:[array count]-1]];

这里首先它将连接所有前面的字符串和点(。)也.. 这将带有任意数量的点。在您的图像名称之间..

答案 3 :(得分:1)

NSString *newString = [@"DSC004.jpg" stringByReplacingOccurrencesOfString:@"." withString:@"-Add."];

答案 4 :(得分:0)

NSString *original=@"DSC004.jpg";

NSString *target=[original stringByReplacingOccurrencesOfString:@"'.'" withString:@"-Add."];

试试这个让我认识我的朋友..

快乐编码!! 1

答案 5 :(得分:0)

如果您的文件名是 some.jpg ,则可以使用以下代码:

NSString *newString = [@"DSC004.jpg" stringByReplacingOccurrencesOfString:@"." withString:@"-Add."];

如果它像 some.some.jpg 那样使用:

NSArray *arrayString = [fileName componentsSeparatedByString:@"."];
NSMutableArray *mutableArray = [NSMutableArray arrayWithArray: arrayString];
int arrayCount = [arrayString count];
NSString *newStr = nil;
if(arrayCount>=2)
{
  NSString *tempStr = [arrayString objectAtIndex:arrayCount-2];
  tempStr = [tempStr stringByAppendingString:@"-Add"];  
  [mutableArray replaceObjectAtIndex:arrayCount-2 withObject:tempStr];
  newStr = [mutableArray componentsJoinedByString:@"."];
  NSLog(@"%@",newStr);

}
else
{
  newStr = [fileName stringByAppendingString:@"-Add"];
}

答案 6 :(得分:0)

你也可以选择这个:

NSError *error= NULL;  
NSString *myString = @"DSC004.jpg";
NSMutableString *tempStr =[[NSMutableString alloc] initWithString:myString];
NSRegularExpression *regex =[NSRegularExpression regularExpressionWithPattern:@"(\\..{3})$" options:NSMatchingReportCompletion error:&error];
[regex replaceMatchesInString:tempStr options:NSMatchingReportCompletion range:NSMakeRange(0,[myString length]) withTemplate:@"-Add$0"];

NSLog(@"%@",tempStr);

此处正则表达式引擎会查找模式<dot> followed by three characters并将其保存在$0中,然后将其替换为-Add followed by saved value(match) in $0

希望它也有帮助!