से NSCharacterSet में वर्ण हटाएं मेरे पास एक एनएससीएचएआरएटरसेट है जिसमें सभी वर्ण शामिल हैं जिन्हें मैं अपने एनएसएसटींग से हटाना चाहता हूं।NSString
मैं यह कैसे कर सकता हूं?
से NSCharacterSet में वर्ण हटाएं मेरे पास एक एनएससीएचएआरएटरसेट है जिसमें सभी वर्ण शामिल हैं जिन्हें मैं अपने एनएसएसटींग से हटाना चाहता हूं।NSString
मैं यह कैसे कर सकता हूं?
यदि आप दक्षता के बारे में बहुत चिंतित नहीं हैं, तो एक आसान तरीका [[myString componentsSeparatedByCharactersInSet:myCharacterSet] componentsJoinedByString:@""]
होगा।
अन्यथा, आप एक लूप में वर्णों के माध्यम से चला सकते हैं, जो एक नई स्ट्रिंग पर सेट में नहीं थे। यदि आप इसे इस तरह करते हैं, तो अपने परिणाम के लिए NSMutableString
का उपयोग करना याद रखें क्योंकि आप इसे बना रहे हैं।
आप स्ट्रिंग के माध्यम से स्कैन करने के लिए NSScanner का उपयोग कर सकते हैं, वर्णों का एक हिस्सा स्कैनिंग-इन-द-सेट, इसे अपने परिणाम स्ट्रिंग में जोड़ना, वर्णों में इन-द-सेट को अन्यथा स्कैन करना अनदेखा करें, और स्कैनर अंत तक पहुंचने तक दोहराना।
चेकआउट निम्नलिखित कोड:
@implementation NSString(Replacing)
- (NSString *)stringByReplacingCharactersInSet:(NSCharacterSet *)charSet withString:(NSString *)aString {
NSMutableString *s = [NSMutableString stringWithCapacity:self.length];
for (NSUInteger i = 0; i < self.length; ++i) {
unichar c = [self characterAtIndex:i];
if (![charSet characterIsMember:c]) {
[s appendFormat:@"%C", c];
} else {
[s appendString:aString];
}
}
return s;
}
@end
आप में से एक प्रतिस्थापन स्ट्रिंग निर्दिष्ट करते हैं @ "" आप सेट में पात्रों को दूर करेंगे।