删除目标c中的特殊字符

War*_*ior 0 objective-c ios

我想从文件名中删除特殊字符.请找到以下代码.我有删除的问题.从文件名,我的代码也删除了.in扩展名.

Ex filename = atf.bac.xlsx
Expected result: atfbac.xlsx
Current Behavior:atfbacxlsx


NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@".#%;:?,/|\[]{}@$%^*"];
fileName = [[fileName componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];
Run Code Online (Sandbox Code Playgroud)

vad*_*ian 7

您必须将字符串视为路径或URL中的文件名

  • 暂时保存文件扩展名.
  • 删除文件扩展名.
  • 删除不需要的字符.
  • 添加文件扩展名.

    NSString *fileName = @"atf.bac.xlsx";
    NSString *extension = fileName.pathExtension;
    NSString *baseName = [fileName stringByDeletingPathExtension];
    NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@".#%;:?,/|\[]{}@$%^*"];
    fileName = [[[baseName componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""] stringByAppendingPathExtension:extension];
    NSLog(@"%@",fileName);
    
    Run Code Online (Sandbox Code Playgroud)