3

jpg、png、および gif 拡張子を持つ画像を含む画像の配列を使用しています。拡張子の直前に、配列内のすべての画像に文字列 @"-Add" を追加する必要があります。これを達成するにはどうすればよいですか。例:私は画像DSC004.jpgを持っていて、私の画像名がDSC004-Add.jpgになるように文字列「-Add」を追加したい.?????

拡張子を削除し、必要な文字列を追加してから、もう一度拡張子を追加することを考えました.しかし、画像の配列には、画像名ごとに異なる拡張子があります.PLは私を助けてくれます

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 *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]];

ここでは、最初に前のすべての文字列とdot(。)も連結します。これは任意の数のドットになります。画像名の間に。

于 2012-12-12T06:19:36.393 に答える
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 に答える
1
NSString *newString = [@"DSC004.jpg" stringByReplacingOccurrencesOfString:@"." withString:@"-Add."];
于 2012-12-12T05:54:23.727 に答える
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 に答える
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
NSString *original=@"DSC004.jpg";

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

これを試して、友達に知らせてください..

ハッピーコーディング!!1

于 2012-12-12T05:54:51.040 に答える