Подтвердить что ты не робот

Получение индекса символа в NSString со смещением и использование подстроки в Objective-C

У меня есть строка!

   NSString *myString=[NSString stringWithFormat:@"This is my lovely string"];

Что я хочу сделать:

  • Предполагая, что первый символ в строке находится в индексе 0. Перейдите к 11-му символу (это "l" в приведенном выше случае) и найдите позицию первого встречного пространства назад (В приведенной выше строке позиция первое место, если мы идем назад от 'l', находится в позиции 10). Позвольте называть индекс этого пространства "leSpace", имеющего значение 10.
  • Подставляем оставшуюся строку в новую строку, используя...

    [myString substringFromIndex:leSpace]
    

... Надеюсь, я хорошо объяснил. Помогите, можете ли вы написать фрагмент или что-то, что поможет мне выполнить эту задачу?

4b9b3361

Ответ 1

- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)aRange

Для использования опций: NSBackwardsSearch

NSRange range = [myString rangeOfString:@" " options:NSBackwardsSearch range:NSMakeRange(0, 11)];

Пример:

NSString *myString=[NSString stringWithFormat:@"This is my lovely string"];
NSRange range = [myString rangeOfString:@" " options:NSBackwardsSearch range:NSMakeRange(0, 11)];
NSLog(@"range.location: %lu", range.location);
NSString *substring = [myString substringFromIndex:range.location+1];
NSLog(@"substring: '%@'", substring);

Выход NSLog:

range.location: 10
substring: 'lovely string'

Конечно, должна быть проверка ошибок, что range.location не равно NSNotFound