web-dev-qa-db-fra.com

Recherche de chaînes dans un tableau de chaînes dans l'objectif c

Je souhaite rechercher une chaîne spécifique dans le tableau de chaînes de Objective C. Quelqu'un peut-il m'aider à cet égard?

83
Filthy Knight
BOOL isTheObjectThere = [myArray containsObject: @"my string"];

ou si vous avez besoin de savoir où il se trouve

NSUInteger indexOfTheObject = [myArray indexOfObject: @"my string"];

Je vous recommande fortement de lire le documentation sur NSArray . Il est préférable de le faire avant de poster votre question :-)

189
JeremyP

Vous pouvez utiliser la classe NSPredicate pour rechercher des chaînes dans un tableau de chaînes. Voir l'exemple de code ci-dessous.

NSMutableArray *cars = [NSMutableArray arrayWithObjects:@"Maruthi",@"Hyundai", @"Ford", @"Benz", @"BMW",@"Toyota",nil];

NSString *stringToSearch = @"i";

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",stringToSearch]; // if you need case sensitive search avoid '[c]' in the predicate

NSArray *results = [cars filteredArrayUsingPredicate:predicate];

C'est le moyen le plus efficace pour rechercher des chaînes dans un tableau de chaînes.

45
Rashid
NSMutableArray *cars = [NSMutableArray arrayWithObjects:@"Max",@"Hai", @"Fine", @"Bow", @"Bomb",@"Toy",nil];

NSString *searchText = @"i";
 NSArray *results = [cars filteredArrayUsingPredicate:predicate];

// if you need case sensitive search avoid '[c]' in the predicate

 NSPredicate *resultPredicate = [NSPredicate
                                predicateWithFormat:@"title contains[c] %@",
                                searchText];


searchResults = [cars  filteredArrayUsingPredicate:resultPredicate];
2
Rahul K Rajan