2012-04-15 74 views
-1

如何从完整字符串中获取某个字符串。iPhone:如何在完整字符串中查找字符串

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

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

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

谢谢。

回答

3

您可以使用路径组件:

NSString fileName = [URLstring lastPathComponent]; 
0

您需要使用NSScanner并扫描到第4个斜杠。扫描后留下的是你想要的字符串。

编辑

但是与什么理查德说,如果您的网址是不会改变一个简单的路径组件将工作,因为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 
+0

可以哟你给我样品? – Getsy 2012-04-15 12:53:29

+0

正在处理样本。给我一分钟。也是改变文件名的唯一部分?或者将它的扩展名和url更改为它之前? – 2012-04-15 12:57:28

+0

Richard和WhiteTiger说的是正确的。 NSScanner如果只打算使用如上所述的简单网址,那就太过分了。 – 2012-04-15 12:59:52

0

您还可以使用NSString类方法,那些以rangeOfString开始:

- (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; 
+1

与您的示例,您可以使用以下内容: - (NSArray *)pathComponents;将返回一个包含路径元素的数组 – WhiteTiger 2012-04-15 12:57:19