我正在处理包含带有 jpg、png 和 gif 扩展名的图像的图像数组。我需要在扩展之前将字符串 @"-Add" 附加到数组中的每个图像。我怎样才能实现这一点。例如:我有一个图像 DSC004.jpg,我想附加字符串“-Add”,这样我的图像名称就变成了 DSC004-Add.jpg.?????
我想删除扩展名,附加所需的字符串,然后再次附加扩展名。但是我的图像数组的每个图像名称都有不同的扩展名。PLs帮助我
我正在处理包含带有 jpg、png 和 gif 扩展名的图像的图像数组。我需要在扩展之前将字符串 @"-Add" 附加到数组中的每个图像。我怎样才能实现这一点。例如:我有一个图像 DSC004.jpg,我想附加字符串“-Add”,这样我的图像名称就变成了 DSC004-Add.jpg.?????
我想删除扩展名,附加所需的字符串,然后再次附加扩展名。但是我的图像数组的每个图像名称都有不同的扩展名。PLs帮助我
最完整和通用的方法,但不是最简单的,是这样的:
NSString *filename = @"DSC004.jpg";
NSString *ext = [filename pathExtension];
NSString *basename = [filename stringByDeletingPathExtension];
NSString *updated = [basename stringByAppendingString:@"-Add"];
NSString *finalName = [updated stringByAppendingPathExtension:ext];
此方法适用于完整路径名或文件名以及名称中包含多个句点的文件。
NSString *str = @"ajdgl.jpg";
NSArray *arr = [str componentsSeparatedByString:@"."];
NSString *newStr = [NSString stringWithFormat:@"%@-add%@",[arr objectAtIndex:0],[arr objectAtIndex:1]];
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]];
首先,它将连接所有先前的字符串和点(。)也..这将与任意数量的点。在您的图像名称之间..
NSString *newString = [@"DSC004.jpg" stringByReplacingOccurrencesOfString:@"." withString:@"-Add."];
NSString *original=@"DSC004.jpg";
NSString *target=[original stringByReplacingOccurrencesOfString:@"'.'" withString:@"-Add."];
试试这个,让我认识我的朋友..
快乐编码!!1
如果您的文件名如下,您可以使用以下代码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"];
}
你也可以选择这个:
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
希望它也有帮助!