给定一个字符串,例如:"new/path - path/path/03 - filename.ext",如何使用NSScanner(或任何其他方法)将子字符串从最后一个"/"返回到字符串的末尾,即,"03 - filename.ext"?我一直试图开始的代码是:
while ([fileScanner isAtEnd] == NO){
slashPresent = [fileScanner scanUpToString:@"/" intoString:NULL];
if (slashPresent == YES) {
[fileScanner scanString:@"/" intoString:NULL];
lastPosition = [fileScanner scanLocation];
}
NSLog(@"fileScanner position: %d", [fileScanner scanLocation]);
NSLog(@"lastPosition: %d", lastPosition);
}
Run Code Online (Sandbox Code Playgroud)
...这会在扫描到字符串末尾后导致段错误!我不确定为什么这不起作用.想法?提前致谢!
小智 11
NSString *thePath = @"new/path - path/path/03 - filename.ext";
NSString *lastPathComponent = [thePath lastPathComponent]; // "03 - filename.ext"
Run Code Online (Sandbox Code Playgroud)
编辑以回复您的后续行动.您不需要NSScanner:
NSString *thePath = @"new/path - path/path/03 - filename.ext";
NSRange theRange = [thePath rangeOfString:@"/" options:NSBackwardsSearch];
NSString *lastPathComponent = nil;
if (theRange.location != NSNotFound)
lastPathComponent = [thePath substringFromIndex:theRange.location];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1809 次 |
| 最近记录: |