Câu hỏi Tìm kiếm chuỗi trong mảng chuỗi trong mục tiêu c


Tôi muốn tìm kiếm một chuỗi cụ thể trong mảng các chuỗi trong mục tiêu c. Ai đó có thể giúp tôi về vấn đề này?


76
2018-05-10 11:20


gốc


Nó là bài tập về nhà của bạn? Tôi nghĩ điều đó rất dễ làm. Tại sao chỉ lặp lại và so sánh? - vodkhang
na, nó không phải bài tập về nhà, tôi cần thuật toán tốt nhất để tìm kiếm một chuỗi cụ thể mà chi phí không nhiều tài nguyên trong iphone, đó là lý do tại sao tôi đặt câu hỏi - Filthy Knight
có thể trùng lặp Objective-C Tìm kiếm NSArray cho String? - nielsbot


Các câu trả lời:


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

hoặc nếu bạn cần biết nó ở đâu

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

Tôi khuyên bạn nên đọc tài liệu về NSArray. Tốt nhất bạn nên làm điều đó trước khi đăng câu hỏi của mình :-)


174
2018-05-10 16:20



cho phép nói rằng tôi có một mảng chứa NSArray * myArr = [[NSArray alloc] initWithObjects: @ "test1", @ "test3", @ "test3", nil]; tôi muốn tìm kiếm "tes" cho phép nói sau đó tôi muốn một stuf thẻ hoang dã để làm việc, mà tôi không thể hiểu, vì vậy tôi đặt câu hỏi này, nhưng cảm ơn cho trả lời, đánh giá cao - Filthy Knight
Bạn có thể lặp lại và kiểm tra từng giá trị, hoặc nhìn vào NSPredicate cung cấp tìm kiếm khá toàn diện cho các đối tượng thu thập - gần như là mạnh mẽ như SQL trong đó các mệnh đề. developer.apple.com/mac/library/documentation/cocoa/Conceptual/… - JeremyP


Bạn có thể sử dụng lớp NSPredicate để tìm kiếm chuỗi trong chuỗi các chuỗi. Xem mã mẫu bên dưới.

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

Đây là cách hiệu quả nhất để tìm kiếm chuỗi trong chuỗi các chuỗi


43
2018-03-20 12:36



điều này hoạt động tốt cho mảng nhỏ nhưng nếu u có mảng rất lớn (hơn sau đó 30k hồ sơ) bạn có thể có bất kỳ ý tưởng - amit gupta
Sau đó giữ cho mảng được sắp xếp và sử dụng tìm kiếm nhị phân (bsearch) để định vị và chèn các phần tử mới. NSArray / NSMutableArray có phương pháp cho điều đó. - 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];

2
2017-09-11 08:52



Mặc dù đoạn mã này có thể trả lời câu hỏi, nhưng tốt hơn nên đưa ra giải thích về cách trả lời câu hỏi để câu trả lời này hữu ích cho khách truy cập trong tương lai của trang web - RobV
Đoạn mã này hoạt động tốt để tìm từ trong một mảng từ. - Rahul K Rajan