如何从完整的字符串中获取某个字符串。
例如:我有一个完整的字符串,如下所示。
"http://serverurl.com/mediadata/Album.wav";
我需要从上面的字符串中获取“Album.wav”。名称因不同的 url 字符串而异。如何得到它?
谢谢。
如何从完整的字符串中获取某个字符串。
例如:我有一个完整的字符串,如下所示。
"http://serverurl.com/mediadata/Album.wav";
我需要从上面的字符串中获取“Album.wav”。名称因不同的 url 字符串而异。如何得到它?
谢谢。
您可以使用路径组件:
NSString fileName = [URLstring lastPathComponent];
您可能需要使用 NSScanner 并扫描到第 4 个斜线。扫描后剩下的就是你想要的字符串。
已编辑
然而,正如理查德所说,如果你的 url 不会改变一个简单的路径组件将起作用,因为 NSString 会为你解析文件路径。这是一个例子。
NSArray *urlStrings = [NSArray arrayWithObjects:@"http://serverurl.com/mediadata/Album.wav",
@"http://serverurl.com/mediadata/NewAlbum.wav",
@"http://serverurl.com/mediadata/OtherAlbum.mp3", nil];
for (NSString *url in urlStrings) {
NSLog(@"%@",[url lastPathComponent]);
}
输出
2012-04-15 09:01:15.878 NSScanner[6448:f803] Album.wav
2012-04-15 09:01:15.880 NSScanner[6448:f803] NewAlbum.wav
2012-04-15 09:01:15.881 NSScanner[6448:f803] OtherAlbum.mp3
您还可以使用以 rangeOfString 开头的 NSString 类方法:
- (NSRange)rangeOfString:(NSString *)aString;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)aRange;
- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange locale:(NSLocale *)locale;