स्ट्रिंग में शब्दों को गिनने के लिए, आपको -[NSString enumerateSubstringsInRange:options:usingBlock:]
NSStringEnumerationByWords
और NSStringEnumerationLocalized
के साथ उपयोग करना चाहिए। सूचीबद्ध सभी अन्य विधियों में उन शब्दों की पहचान करने के साधनों का उपयोग किया जाता है जो लोकेल-उपयुक्त नहीं हो सकते हैं या सिस्टम परिभाषा के अनुरूप नहीं हो सकते हैं। उदाहरण के लिए, दो शब्दों को अल्पविराम से अलग किया गया है लेकिन व्हाइटस्पेस नहीं है (उदा। "Foo, bar") को किसी अन्य उत्तर से अलग शब्दों के रूप में नहीं माना जाएगा, लेकिन वे कोको टेक्स्ट दृश्यों में हैं।
[aString enumerateSubstringsInRange:NSMakeRange(0, [aString length])
options:NSStringEnumerationByWords | NSStringEnumerationLocalized
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop){
if ([substring rangeOfString:@"ll" options:NSCaseInsensitiveSearch].location != NSNotFound)
/* do whatever */;
}];
-enumerateSubstringsInRange:options:usingBlock:
के लिए दस्तावेज, यदि आप एक परिवर्तनशील स्ट्रिंग पर यह कहते हैं, आप सुरक्षित रूप से स्ट्रिंग उत्परिवर्तित सकते हैं enclosingRange
भीतर प्रगणित जा रहा है। इसलिए, यदि आप मिलान करने वाले शब्दों को प्रतिस्थापित करना चाहते हैं, तो आप [aString replaceCharactersInRange:substringRange withString:replacementString]
जैसे कुछ के साथ कर सकते हैं।
स्रोत
2012-06-23 18:15:31
चीनी, जापानी, जर्मन, व्हाइटस्पेस जैसी कुछ भाषाओं के लिए शब्दों के बीच स्पष्ट सीमा नहीं है, इसलिए केन दृष्टिकोण उचित है। – Krodak