2012-11-17 12 views
13

में विशेष वर्ण निकालें मैं शब्दों में पैरा कन्वर्ट यह NSString में इस वर्ण को हटाने और करने के लिए NSStringNSString

पूर्व 'नई' में केवल अक्षर पाने के लिए

" , " . ` 

जैसे कई विशेष वर्ण हूँ नया //the special characters are change

+0

http://www.thismuchiknow.co.uk/?p=73 –

उत्तर

70
NSString *unfilteredString = @"[email protected]#$%^&*()_+|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; 
NSCharacterSet *notAllowedChars = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"] invertedSet]; 
NSString *resultString = [[unfilteredString componentsSeparatedByCharactersInSet:notAllowedChars] componentsJoinedByString:@""]; 
NSLog (@"Result: %@", resultString); 

यह कोशिश कर सकते हैं मदद करता है

+1

परिणाम आप केवल अक्षर – MadhuP

+1

अपने काम के लिए धन्यवाद –

+0

महान समाधान देता है ! – mafonya

5

इससे निपटने के कई तरीके हैं। उदाहरण के तौर पर, यहां नियमित अभिव्यक्तियों का उपयोग करके एक समाधान है। यह सिर्फ एक उदाहरण है। हम उन विशेष पात्रों की पूरी श्रृंखला नहीं जानते जिन्हें आप निकालना चाहते हैं।

#import <Foundation/Foundation.h> 

int main(int argc, const char * argv[]) 
{ 

    @autoreleasepool { 
     NSRegularExpression *expression = [NSRegularExpression regularExpressionWithPattern:@"[,\\.`\"]" 
                        options:0 
                         error:NULL]; 
     NSString *sampleString = @"The \"new\" quick brown fox, who jumped over the lazy dog."; 
     NSString *cleanedString = [expression stringByReplacingMatchesInString:sampleString 
                     options:0 
                     range:NSMakeRange(0, sampleString.length) 
                    withTemplate:@""]; 
     printf("cleaned = %s",[cleanedString UTF8String]); 

    } 
    return 0; 
} 
-1

मैं वहाँ एक और अधिक सुरुचिपूर्ण समाधान है, लेकिन स्विफ्ट में ऐसा करने की कोशिश कर किसी के लिए भी यकीन है कि, यहाँ है कि मैं क्या करने के लिए किया था है यकीन है कि वहाँ नहीं थे मेरे उपयोगकर्ताओं के फोन नंबरों में विशेष पात्र।

var phone = "+1 (555) 555 - 5555" 
var removeChars: NSCharacterSet = NSCharacterSet(charactersInString: "1234567890").invertedSet 
var charArray = phone.componentsSeparatedByCharactersInSet(removeChars) 
var placeholderString = "" 
var formattedPhoneNumber: String = placeholderString.join(charArray).stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) 

stringByTrimmingCharactersInSet आवश्यक नहीं हो सकता है।

0
स्विफ्ट (लेकिन Swifty रास्ता) में

स्वीकृत जवाब:

let notAllowedCharactersSet = NSCharacterSet(charactersInString: "ABCDEFGHIJKLMNOPQRSTUVWXYZ").invertedSet 
let filtered = (stringToFilter.componentsSeparatedByCharactersInSet(notAllowedCharactersSet) as NSArray).componentsJoinedByString("") 
+0

सी ++, जावा, पायथन, बोर्न-फिर खोल, अजीब, और एमईएल के रास्ते के बारे में कैसे? – Droppy

+0

@Droppy क्योंकि हम NSFoundation ऑब्जेक्ट्स के बारे में बात कर रहे हैं, जो केवल ओबीजे-सी और स्विफ्ट भाषाओं में उपलब्ध हैं। – Andrea

+0

तो सी और सी ++ गिनती तो? – Droppy