我正在處理包含jpg,png和gif擴展名的圖像的圖像數組。我需要在之前的數組中添加一個字符串@「 - Add」延伸。我可以如何實現這一點。 對於例如:我有一個圖像DSC004.jpg,我想追加字符串「-Add」,以便我的圖像名稱變成DSC004-Add.jpg。如何在目標c中的另一個字符串追加一個字符串iphone
我想刪除擴展,附加所需的字符串,然後再附加的extension.But我的圖像陣列與每個圖像不同的擴展name.PLs幫我出
我正在處理包含jpg,png和gif擴展名的圖像的圖像數組。我需要在之前的數組中添加一個字符串@「 - Add」延伸。我可以如何實現這一點。 對於例如:我有一個圖像DSC004.jpg,我想追加字符串「-Add」,以便我的圖像名稱變成DSC004-Add.jpg。如何在目標c中的另一個字符串追加一個字符串iphone
我想刪除擴展,附加所需的字符串,然後再附加的extension.But我的圖像陣列與每個圖像不同的擴展name.PLs幫我出
的最完整,最普遍的方式,但不是最簡單的,是這樣的:
NSString *filename = @"DSC004.jpg";
NSString *ext = [filename pathExtension];
NSString *basename = [filename stringByDeletingPathExtension];
NSString *updated = [basename stringByAppendingString:@"-Add"];
NSString *finalName = [updated stringByAppendingPathExtension:ext];
這種方法適用於全路徑名或文件名和文件的名稱中多個句點,。
NSString *[email protected]"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"];
}
NSString *str = @"ajdgl.jpg";
NSArray *arr = [str componentsSeparatedByString:@"."];
NSString *newStr = [NSString stringWithFormat:@"%@-add%@",[arr objectAtIndex:0],[arr objectAtIndex:1]];
如果名稱根本沒有時間,此代碼將崩潰。如果有多個期間,這會給出錯誤的結果。 – rmaddy
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]];
這裏首先它會連接所有以前的字符串和點(。)也.. 這將與任意數量的點。在圖片名稱之間..
不,如果有兩個或兩個以上的時間段,這段代碼會留下部分文件名。 – rmaddy
雅你是對的..但我認爲現在它會正常工作.. –
你可以去這一個也:
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
希望它可以取代它也有幫助!
hello Sujay..if你確定你的圖片文件只包含一個'。'然後使用許多人建議的任何其他解決方案,但是如果您的圖像名稱可能有多個「。」。然後使用rmady的解決方案。 –