3

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

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

4

7 回答 7

15

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

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

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

于 2012-12-12T06:01:26.837 回答
2
NSString *str = @"ajdgl.jpg";
NSArray *arr = [str componentsSeparatedByString:@"."];
NSString *newStr  = [NSString stringWithFormat:@"%@-add%@",[arr objectAtIndex:0],[arr objectAtIndex:1]];
于 2012-12-12T06:09:49.340 回答
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]];

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

于 2012-12-12T06:19:36.393 回答
1
NSString *newString = [@"DSC004.jpg" stringByReplacingOccurrencesOfString:@"." withString:@"-Add."];
于 2012-12-12T05:54:23.727 回答
0
NSString *original=@"DSC004.jpg";

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

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

快乐编码!!1

于 2012-12-12T05:54:51.040 回答
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"];
}
于 2012-12-12T06:09:30.370 回答
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

希望它也有帮助!

于 2012-12-12T11:15:30.563 回答