-1

如何从完整的字符串中获取某个字符串。

例如:我有一个完整的字符串,如下所示。

"http://serverurl.com/mediadata/Album.wav";

我需要从上面的字符串中获取“Album.wav”。名称因不同的 url 字符串而异。如何得到它?

谢谢。

4

3 回答 3

3

您可以使用路径组件:

NSString fileName = [URLstring lastPathComponent];
于 2012-04-15T12:56:14.823 回答
0

您可能需要使用 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
于 2012-04-15T12:52:01.967 回答
0

您还可以使用以 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;
于 2012-04-15T12:54:29.797 回答