2010-08-31 17 views
48

मेरे पास एक एनएसएसटींग ऑब्जेक्ट है और मैं एक शब्द ढूंढकर, इसे एक सबस्ट्रिंग बनाना चाहता हूं।एनएसएसटींग ऑब्जेक्ट में एक सबस्ट्रिंग ढूँढना

उदाहरण के लिए, मेरी स्ट्रिंग है: "कुत्ते ने बिल्ली खा ली", मैं चाहता हूं कि कार्यक्रम "एटी" शब्द का पता लगाए और एक सबस्ट्रिंग करे जो "बिल्ली" होगी।

क्या कोई मेरी मदद कर सकता है या मुझे एक उदाहरण दे सकता है?

धन्यवाद,

Sagiftw

उत्तर

80
NSRange range = [string rangeOfString:@"ate"]; 
NSString *substring = [[string substringFromIndex:NSMaxRange(range)] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
+4

मुझे पता है कि यह विषय पुराना है, लेकिन एफडब्ल्यूआईडब्ल्यू, आप श्रेणीऑफस्ट्रिंग का भी उपयोग कर सकते हैं: विकल्प: यदि विकल्प कोई समस्या है तो आप एनएससीएएसइन्सेंसिव सर्च का उपयोग करते हैं। यही है, यदि कोई उपयोगकर्ता किसी भी मामले में स्ट्रिंग दर्ज कर सकता है, और आप यह जानना चाहते हैं कि कोई पैटर्न है, चाहे मामले के बावजूद, आप केस-असंवेदनशील खोज का उपयोग करेंगे। – GTAE86

16
NSString *str = @"The dog ate the cat"; 
NSString *search = @"ate"; 
NSString *sub = [str substringFromIndex:NSMaxRange([str rangeOfString:search])]; 

आपको लगता है कि अलग से कर सकते हैं कि आप सफेद स्थान ट्रिम करने के लिए चाहते हैं।

2
NSString *theNewString = [receivedString substringFromIndex:[receivedString rangeOfString:@"Ur String"].location]; 

आप एक स्ट्रिंग के लिए खोज कर सकते हैं और फिर एक और स्ट्रिंग में खोजा गया स्ट्रिंग मिलता है ...

8

इस तरह के बारे में क्या? यह लगभग समान है। लेकिन शायद एनएसआरेंज का अर्थ शुरुआती लोगों के लिए समझना आसान है, अगर यह इस तरह लिखा गया है।

अंत में, यह jtbandes

NSString *szHaystack= @"The dog ate the cat"; 
    NSString *szNeedle= @"ate"; 
    NSRange range = [szHaystack rangeOfString:szNeedle]; 
    NSInteger idx = range.location + range.length; 
    NSString *szResult = [szHaystack substringFromIndex:idx]; 
1
-(BOOL)Contains:(NSString *)StrSearchTerm on:(NSString *)StrText 
{ 
    return [StrText rangeOfString:StrSearchTerm options:NSCaseInsensitiveSearch].location==NSNotFound?FALSE:TRUE; 
} 
3

यह एक प्रयास करें का एक ही समाधान है ..

BOOL isValid=[yourString containsString:@"X"]; 

इस विधि वापसी सही या गलत। यदि आपकी स्ट्रिंग में यह वर्ण शामिल है तो यह सच हो जाता है, और अन्यथा यह झूठा लौटाता है।

+0

ध्यान रखें कि यह केवल आईओएस 8.0 और उसके बाद के संस्करण पर काम करेगा। – Werewolf

0

आप substringToIndex: और substringFromIndex: जैसे एनएसएसटींग कक्षा में प्रदान की गई दो विधियों में से किसी एक का उपयोग कर सकते हैं। अपनी लंबाई और स्थान के रूप में इसे एक एनएसआरेंज पास करें, और आपके पास वांछित आउटपुट होगा।

संबंधित मुद्दे