2010-09-03 17 views
13
NSString *url = @"http://stackoverflow.com/questions/ask"; 

如何获取第4个“/”的字符位置?NSString字符位置

+0

你的意思是第4个“/”,第4个字符不是“/”。或者如果你的意思是所有“/”中的第四个“/”,对应于最后一个“/ ask” – vodkhang 2010-09-03 02:22:15

+0

是最后一个“/ ask” – Fasid 2010-09-03 02:28:36

回答

29

如果你只是想获得的URL的最后一部分,你应该能够使用此:

NSArray* items = [url componentsSeparatedByString:@"/"]; 

为了得到最后的 '/' 字符的索引:

NSRange range = [url rangeOfString:@"/" options:NSBackwardsSearch]; 

从索引值range.location

要找到URL中的第四个“/”字符的索引:

int count = 0; 
int index = -1; 
for (unsigned int i=0; i < [url length]; ++i) { 
    if ([url characterAtIndex:i] == '/') { 
     ++count; 
     if (count == 4) { 
      index = i; 
      break; 
     } 
    } 
} 
+0

我需要索引但是thx – Fasid 2010-09-03 02:53:31

+0

它并不总是最后一个一个,它是第四个 – Fasid 2010-09-03 03:13:54

0

我在理解你的问题后编辑了我的答案。

亚太区首席技术官Matt的答案几乎是正确的,你只需要做一点点

NSArray* items = [url componentsSeparatedByString:@"/"]; 

if ([items count] > 4) { 
    NSString *string = [items objectAtIndex:4]; 
} 
7

通常你不必把信/索引。您只需使用NSURL中定义的许多便利方法,请参阅this Apple reference。我会做

NSURL* url=[NSURL URLWithString:@"http://stackoverflow.com/questions/ask"]; 
    NSString* last=[url lastPathComponent]; // last is now @"ask" 
5

另一种方式,可以使用

[url rangeOfString:@"/" options:NSBackwardsSearch].location 

希望它能帮助!

+0

我只是想弄清楚如何在一个字符串上手动执行“逻辑”换行符(即在空格处打断)以在多个CCLabelTTF块中吐出一个字符串,这正是我所需要的,谢谢! – redux 2013-10-23 07:30:40

+0

这应该被接受的答案... – 2016-02-03 09:20:30