Позиция символа NSString

NSString *url = @"http://stackoverflow.com/info/ask";

Как я могу получить позицию символа 4-го "/"?

Ответы

Ответ 1

Если вы просто пытаетесь получить последнюю часть 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;
        }
    }
}

Ответ 2

Обычно вам не нужно получать индекс букв /. Вы можете просто использовать множество методов удобства, определенных в NSURL, см. эту ссылку Apple. Я бы сделал

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

Ответ 3

другой способ, которым вы можете использовать

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

надеюсь, что это поможет!

Ответ 4

Я понял свой ответ после понимания вашей проблемы.

Ответ Hitesh почти правильный, вам просто нужно сделать немного больше

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

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