2008-11-02 3 views

ответ

85

Применение -[NSString rangeOfString:]:

- (NSRange)rangeOfString:(NSString *)aString; 

Находит и возвращает диапазон первого вхождения заданной строки в приемнике.

+8

И `NSRange. location` является фактическим индексом. – devios1 2014-08-14 20:51:47

+1

`if (NSRange.location! = NSNotFound)`, тогда вы нашли совпадение. – 2016-06-21 14:26:32

18

Я написал категорию, чтобы расширить оригинальный объект NSString. Может быть, вы, ребята, можете это сделать. (Вы также можете увидеть article в моем блоге тоже.)

ExtendNSString.h:

#import <Foundation/Foundation.h> 

@interface NSString (util) 

- (int) indexOf:(NSString *)text; 

@end 

ExtendNSStriing.m:

#import "ExtendNSString.h" 

@implementation NSString (util) 

- (int) indexOf:(NSString *)text { 
    NSRange range = [self rangeOfString:text]; 
    if (range.length > 0) { 
     return range.location; 
    } else { 
     return -1; 
    } 
} 

@end 
+3

Лучшее использование NSRange должно быть следующим: `code` - (int) indexOf: (NSString *) текст { NSRange range = [self rangeOfString: текст]; если (диапазон.location! = NSNotFound) { return range.location; } прочее { возвращение -1; } } `code` – loretoparisi 2011-10-12 10:35:08

28

Если вы хотите просто знать, когда натянуть содержит строки б используйте мой способ сделать это.

#define contains(str1, str2) ([str1 rangeOfString: str2 ].location != NSNotFound) 

//using 
NSString a = @"PUC MINAS - BRAZIL"; 

NSString b = @"BRAZIL"; 

if(contains(a,b)){ 
    //TO DO HERE 
} 

Это менее читаемое, но и повышает производительность

1

Я знаю, что уже поздно, но я добавил категорию, которая реализует этот метод и многие другие, подобного яваскрипт строковых методов
https://github.com/williamFalcon/WF-iOS-Categories

Смежные вопросы