#iphone #nsrange
#iPhone #nsrange
Вопрос:
В настоящее время я использую приведенный ниже код для получения подстроки
NSString *s1 = [stringName substringWithRange: NSMakeRange(0, 2)];
NSString *s2 = [stringName substringWithRange: NSMakeRange(2, 4)];
NSString *s3 = [stringName substringWithRange: NSMakeRange(6, [stringName length])];
Вот, как проверить, допустим диапазон или нет, потому что я не могу проверить длину строки для проверки, потому что она может отличаться по времени. Пожалуйста, помогите мне в этом вопросе..
Ответ №1:
Для s3
вы начинаете с позиции и запрашиваете ровно столько символов, сколько есть в строке. Но поскольку вы начинаете с позиции 6, вы запрашиваете слишком много символов 6. Вам нужно сделать:
NSString *s3 = [stringName substringWithRange: NSMakeRange(6, [stringName length] - 6)];
Ответ №2:
Как говорится в документации Apple..
substringWithRange:
Возвращает объект string, содержащий символы получателя, которые лежат в пределах заданного диапазона.
- (NSString *)substringWithRange:(NSRange)aRange
aRange
A range. The range must not exceed the bounds of the receiver.
Вам нужно проверять каждый раз, когда вы создаете NSMakeRange(), соответствует ли указанный вами диапазон длине вашей строки или нет … используя некоторое if and else
условие