Pencarian string dalam array string di tujuan c

87

Saya ingin mencari string tertentu dalam array string di tujuan c. Adakah yang bisa membantu saya dalam hal ini?

Ksatria Kotor
sumber
Apakah ini pekerjaan rumah Anda? Saya pikir itu mudah dilakukan. Mengapa hanya mengulang dan membandingkan?
vodkhang
na, ini bukan pekerjaan rumah, saya membutuhkan algoritma terbaik untuk mencari string tertentu yang tidak menghabiskan banyak sumber daya di iphone, itulah mengapa saya mengajukan pertanyaan
Filthy Knight
kemungkinan duplikat dari Objective-C Search NSArray for String?
nielsbot

Jawaban:

193
BOOL isTheObjectThere = [myArray containsObject: @"my string"];

atau jika Anda ingin tahu di mana tempatnya

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

Saya sangat menyarankan Anda membaca dokumentasi di NSArray . Sebaiknya lakukan itu sebelum memposting pertanyaan Anda :-)

JeremyP
sumber
katakanlah saya memiliki sebuah array yang berisi NSArray * myArr = [[NSArray alokasi] initWithObjects: @ "test1", @ "test3", @ "test3", nil]; saya ingin mencari "tes" katakanlah kemudian saya ingin stuf kartu liar bekerja, yang saya tidak mengerti, jadi saya mengajukan pertanyaan ini, tapi terima kasih atas jawabannya, saya hargai
Filthy Knight
Anda dapat mengulang dan menguji setiap nilai, atau melihat ke NSPredicate yang menyediakan pencarian yang cukup komprehensif untuk objek koleksi - hampir sekuat SQL where klausa. developer.apple.com/mac/library/documentation/cocoa/Conceptual/…
JeremyP
45

Anda dapat menggunakan kelas NSPredicate untuk mencari string dalam array string. Lihat kode contoh di bawah ini.

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];

Ini adalah cara paling efisien untuk mencari string dalam deretan string

Rashid
sumber
ini berfungsi dengan baik untuk array kecil tetapi jika Anda memiliki array yang sangat besar (lebih dari 30k catatan) dapatkah Anda memiliki ide
amit gupta
Kemudian biarkan array tetap diurutkan dan gunakan pencarian biner (bsearch) untuk menemukan dan untuk menyisipkan elemen baru. NSArray / NSMutableArray memiliki metode untuk itu.
spstanley
3
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];
Rahul K Rajan
sumber
Meskipun cuplikan kode ini dapat menjawab pertanyaan, lebih baik menyertakan penjelasan tentang bagaimana cuplikan kode tersebut menjawab pertanyaan agar jawaban ini berguna bagi pengunjung situs di masa mendatang
RobV
Potongan kode ini berfungsi dengan baik untuk menemukan kata dalam larik kata.
Rahul K Rajan
Saya ingin melakukan ini dengan teks awal. Maksud saya teks pencarian harus dicocokkan dari awal, bukan dari mana pun. Tolong bantu
Gautam Shrivastav