我正在处理包含jpg,png和gif扩展图像的图像数组。我需要在扩展名之前向数组中的每个图像追加一个字符串@“ - Add”。如何实现这一点。 例如:我有一个图像DSC004.jpg,我想追加字符串“-Add”,这样我的图像名称就变成了DSC004-Add.jpg。?????
我想删除扩展名,附加必需的字符串然后再附加扩展名。但是我的图像数组与每个图像名称都有不同的扩展名.PLs帮助我
答案 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
希望它也有帮助!