2012-06-28 39 views
15

Làm cách nào tôi có thể lấy vị trí/Chỉ mục của chuỗi con trong một số NSString?Vị trí của chuỗi con trong NSString

Tôi đang tìm vị trí theo cách sau.

NSRange range = [string rangeOfString:searchKeyword]; 
NSLog (@"match found at index:%u", range.location); 

này trả index:2147483647 khi searchKeyword là một chuỗi con trong string.

Làm cách nào tôi có thể nhận giá trị chỉ mục như 20 hoặc 5 như thế?

Trả lời

54

2147483647 cũng giống như NSNotFound, có nghĩa là chuỗi bạn đã tìm kiếm (searchKeyword) không được tìm thấy.

NSRange range = [string rangeOfString:searchKeyword]; 
if (range.location == NSNotFound) { 
    NSLog(@"string was not found"); 
} else { 
    NSLog(@"position %lu", (unsigned long)range.location); 
} 
+0

cảm ơn - @ Kevin Ballard để được giúp đỡ. Bạn có giúp tôi làm thế nào tôi có thể chọn một chuỗi con trên cơ sở của phạm vi đó. ví dụ. "Và, tất nhiên, nó phải được hỏi: có thích hợp để giao dịch với người Thổ Nhĩ Kỳ để yên tâm nhất về tài sản Hy Lạp khi ** Hy Lạp * dưới sự xâm chiếm và chinh phục Thổ Nhĩ Kỳ?'. ở đây tôi tìm thấy vị trí của Hy Lạp bây giờ tôi muốn chọn một 'chuỗi con 'một hoặc hai từ trước và sau đó từ Hy Lạp. như 'khi Hy Lạp đang ở dưới Thổ Nhĩ Kỳ'. bạn có thể giúp xin vui lòng! –

+0

@ShaheenRehman: Có thể bạn muốn sử dụng '-enumerateSubstringsInRange: options: usingBlock:' API. Điều này có thể cung cấp cho bạn các từ riêng lẻ. –

+0

- @ Kevin Ballard bạn có thể cho tôi mã ví dụ về '-enumerateSubstringsInRange: options: usingBlock:' API không. –

8
NSString *searchKeyword = @"your string"; 

NSRange rangeOfYourString = [string rangeOfString:searchKeyword]; 

if(rangeOfYourString.location == NSNotFound) 
{ 
    // error condition — the text searchKeyword wasn't in 'string' 
} 
else{ 
    NSLog(@"range position %lu", rangeOfYourString.location); 
} 

NSString *subString = [string substringToIndex:rangeOfYourString.location]; 

có thể điều này sẽ giúp bạn ....

+0

cảm ơn - @ Kevin Ballard đã trợ giúp. Bạn có giúp tôi làm thế nào tôi có thể chọn một chuỗi con trên cơ sở của phạm vi đó. ví dụ. "Và, tất nhiên, nó phải được hỏi: có thích hợp để giao dịch với người Thổ Nhĩ Kỳ để yên tâm nhất về tài sản Hy Lạp khi ** Hy Lạp * dưới sự xâm chiếm và chinh phục Thổ Nhĩ Kỳ không?". Tôi thấy địa điểm của Hy Lạp bây giờ tôi muốn để chọn một 'chuỗi con' một hoặc hai từ trước và sau từ đó từ Hy Lạp. như 'khi Hy Lạp đang ở dưới Thổ Nhĩ Kỳ'. bạn có thể giúp xin vui lòng! –

+0

bạn có thể sử dụng nó .... [string substringToIndex: rangeOfYourString.location]; Tôi đang chỉnh sửa mã ... có thể điều này sẽ giúp bạn – Abhishek

+0

cảm ơn - @ Abhishek nó hoạt động cho tôi '[chuỗi substringFromIndex: range.location];' –

Các vấn đề liên quan