首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS 字符串插入後綴名處理:pathExtension 与 stringByDeletingPathExtension 組合實現文件名中插入字符

     編輯:程式設計綜合問答

需求:文件名 DSC004.jpg → 在擴展名前插入 -Add → DSC004-Add.jpg。需處理多點文件名(如 image.v1.2.png)。

標準 API 組合(最穩健)

NSString *filename = @"DSC004.jpg";
NSString *ext = [filename pathExtension];           // "jpg"
NSString *base = [filename stringByDeletingPathExtension]; // "DSC004"
NSString *newBase = [base stringByAppendingString:@"-Add"]; // "DSC004-Add"
NSString *result = [newBase stringByAppendingPathExtension:ext]; // "DSC004-Add.jpg"

優勢

  • 正確識別**最後一個點**為擴展名分隔符(pathExtension 語義)。
  • 自動處理無擴展名、隱藏文件(.gitignore)、多層擴展名(.tar.gz 視為 gz)。
  • 跨平台路徑分隔符安全。

正則替代(靈活但易錯)

NSString *result = [filename stringByReplacingOccurrencesOfString:@"\\.([^.]+)$" 
    withString:@"-Add.$1" options:NSRegularExpressionSearch range:NSMakeRange(0, filename.length)];

缺點:需轉義、邊界情況複雜(無擴展名、以點結尾等)。

批量處理數組

NSArray *files = @[@"a.jpg", @"b.png", @"c.v2.gif"];
NSMutableArray *results = [NSMutableArray array];
for (NSString *f in files) {
    NSString *ext = [f pathExtension];
    NSString *base = [f stringByDeletingPathExtension];
    [results addObject:[[base stringByAppendingString:@"-Add"] stringByAppendingPathExtension:ext]];
}

善用 NSString 路徑操作族,優雅解決文件名手術問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved