2011-01-27 13 views
44

मान लें कि मैं इस तरह एक स्ट्रिंग है:उद्देश्य-सी का उपयोग करके अंतरिक्ष द्वारा स्ट्रिंग को अलग कैसे करें?

hello world  this may  have lots of sp:ace or little  space 

मैं इस को यह स्ट्रिंग अलग करना चाहते हैं:

@"hello", @"world", @"this", @"may", @"have", @"lots", @"of", @"sp:ace", @"or", @"little", @"space" 

धन्यवाद।

NSString* s = @"hello world  this may  have lots of space or little  space"; 
NSMutableArray* ar = [NSMutableArray array]; 
[s enumerateSubstringsInRange:NSMakeRange(0, [s length]) options:NSStringEnumerationByWords usingBlock:^(NSString* word, NSRange wordRange, NSRange enclosingRange, BOOL* stop){ 
    [ar addObject:word]; 
}]; 
+0

आपका नुस्खा यहाँ http://stackoverflow.com/questions/758212/objective-c-strip-out-whitespace-from-nsstring/1427224#1427224 – EmptyStack

+3

मैं नहीं देख सकते हैं, यही कारण है कि इस सवाल का है "असली सवाल नहीं" के रूप में मतदान किया। ओपी का कहना है कि क्या दिया जाता है और हासिल करने के लिए क्या आवश्यक है। – vikingosegundo

उत्तर

5

यह ब्लॉक के साथ ऐसा करने के लिए, कुछ इस तरह की कोशिश बहुत आसान है

NSArray *wordsAndEmptyStrings = [yourLongString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
NSArray *words = [wordsAndEmptyStrings filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"length > 0"]]; 
+1

लेकिन अगर मेरे पास स्ट्रिंग के अंदर ":" है, तो यह भी एक गणक के रूप में व्यवहार करता है .... – user448236

74
NSString *aString = @"hello world  this may  have lots of sp:ace or little  space"; 
NSArray *array = [aString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
array = [array filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != ''"]]; 

इस फार्म अपरीक्षित

+4

+1 9 मिनट तक मुझे मारने के लिए +1 ;-) – danyowdee

21

मैं एक दो कदम aproach सुझाव देंगे में टाइप:

19

यह मेरे लिए काम किया है

NSString * str = @"Hi Hello How Are You ?"; 
NSArray * arr = [str componentsSeparatedByString:@" "]; 
NSLog(@"Array values are : %@",arr); 
+2

अच्छा एक मोहित। –

-1

मुझे अनिवार्य रूप से एक रिकॉर्ड (रेखा) को अपने संबंधित क्षेत्र घटकों में विभाजित करने की आवश्यकता थी। प्रत्येक फ़ील्ड को एक टैब चरित्र का उपयोग करके अलग किया गया था।

मैंने पाया कि यह मेरे लिए काम करता है।

NSString *string = @"Imagine this is a string with tabs in it."; 
NSArray *array = [string componentsSeparatedByCharactersInSet: 
         [NSCharacterSet characterSetWithCharactersInString:@"\t"]]; 
NSLog(@"%@", array); 

स्पष्ट रूप से, एक टैब एक स्थान नहीं है। लेकिन उपर्युक्त किसी ऐसे व्यक्ति के लिए उपयोगी हो सकता है जो एक विशिष्ट चरित्र के साथ एक स्ट्रिंग को विभाजित करना चाहता है।

उम्मीद है कि यह किसी की मदद करेगा।

2
NSString * mainString = @"Today is your day"; 
NSArray * array = [mainString componentsSeparatedByString:@" "]; 
NSLog(@"Expected string is : %@",array); 

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

  • कोई संबंधित समस्या नहीं^_^