Voglio cercare una stringa specifica nell'array di stringhe nell'obiettivo c. Qualcuno può aiutarmi in questo senso?Ricerca stringa nell'array di stringhe nell'obiettivo c
risposta
BOOL isTheObjectThere = [myArray containsObject: @"my string"];
o se avete bisogno di sapere dove si trova
NSUInteger indexOfTheObject = [myArray indexOfObject: @"my string"];
vi consiglio caldamente di leggere il documentation on NSArray. È meglio farlo prima di pubblicare la tua domanda :-)
diciamo che ho un array contenente NSArray * myArr = [[NSArray alloc] initWithObjects: @ "test1", @ "test3", @ "test3", nil]; volevo cercare "tes", diciamo quindi volevo che un jolly wild card funzionasse, che non potessi capire, quindi ho posto questa domanda, ma grazie per la risposta, gradita –
o esegui un ciclo di test e prova ogni valore, oppure esaminare NSPredicate che offre una ricerca abbastanza completa degli oggetti di raccolta, quasi altrettanto potente delle clausole SQL. http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/Predicates/predicates.html#//apple_ref/doc/uid/TP40001789 – JeremyP
Puoi usare la classe NSPredicate per cercare stringhe in array di stringhe. Vedere il codice di esempio riportato di seguito.
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];
Questo è il modo più efficiente per la ricerca stringhe in array di stringhe
questo funziona bene per array di piccole dimensioni, ma se si dispone di molto grande array (più di 30k records) puoi avere qualche idea –
Quindi mantieni l'array ordinato e usa una ricerca binaria (bsearch) per localizzare e inserire nuovi elementi. NSArray/NSMutableArray hanno metodi per questo. – spstanley
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];
Mentre questo snippet di codice può rispondere alla domanda è meglio includere una spiegazione di come risponde alla domanda in modo che questa risposta sia utile per i futuri visitatori del sito – RobV
Questo pezzo di codice funziona bene per trovare la parola in una matrice di parole. –
E 'il vostro lavoro? Penso che sia facile da fare. Perché solo il looping e il confronto? – vodkhang
na, non ha i compiti, avevo bisogno dell'algoritmo migliore per cercare una stringa specifica che costava non molte risorse in iphone, ecco perchè ho messo la domanda –
possibile duplicato di [Objective-C Search NSArray for String?] (Http: // stackoverflow .com/questions/3588344/objective-c-search-nsarray-per-string) – nielsbot