मैं सोच रहा हूँ कि कैसे उद्देश्य-सी में एक NSArray [@"Apple", @"Pear ", 323, @"Orange"]
को एक स्ट्रिंग में परिवर्तित किया जाए ।
मैं सोच रहा हूँ कि कैसे उद्देश्य-सी में एक NSArray [@"Apple", @"Pear ", 323, @"Orange"]
को एक स्ट्रिंग में परिवर्तित किया जाए ।
जवाबों:
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
[array description]
newlines और बाहरी कोष्ठक सम्मिलित करता है।
NSString * myString = [array componentsJoinedByString:@""];
एक स्वीकार्य विकल्प है?
<ClassName: InstanceAddress>
। valueForKey
यह प्रत्येक आइटम के लिए निर्दिष्ट संपत्ति को पुनः प्राप्त करता है। इस मामले में, description
एक ऐसी NSString *
संपत्ति है NSObject
, जिसके गेटटर को उसके उपवर्गों द्वारा ओवरराइड किया जा सकता है।
description
प्रत्येक आइटम पर संदेश को कॉल करते हुए एक दृष्टिकोण सरणी पर चलना होगा :
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
[result appendString:[obj description]];
}
NSLog(@"The concatenated string is %@", result);
एक अन्य दृष्टिकोण प्रत्येक आइटम के वर्ग के आधार पर कुछ करना होगा:
NSMutableString * result = [[NSMutableString alloc] init];
for (NSObject * obj in array)
{
if ([obj isKindOfClass:[NSNumber class]])
{
// append something
}
else
{
[result appendString:[obj description]];
}
}
NSLog(@"The concatenated string is %@", result);
यदि आप अल्पविराम और अन्य बाहरी जानकारी चाहते हैं, तो आप बस कर सकते हैं:
NSString * result = [array description];
-description
कि उसके बाद) और उन्हें concat का उपयोग कर -componentsJoinedByString:
के साथ @""
पैरामीटर के रूप में।
मुझे लगता है कि संजय का जवाब लगभग था लेकिन मैंने इसे इस तरह से इस्तेमाल किया
NSArray *myArray = [[NSArray alloc] initWithObjects:@"Hello",@"World", nil];
NSString *greeting = [myArray componentsJoinedByString:@" "];
NSLog(@"%@",greeting);
आउटपुट:
2015-01-25 08:47:14.830 StringTest[11639:394302] Hello World
जैसा कि संजय ने संकेत दिया था - मैंने विधि घटकों का उपयोग किया । जॉइंटेडबायरिंग NSArray से जो जुड़ता है और आपको वापस देता है NSString
BTW NSString में रिवर्स मेथड कंपोनेंटसैपरेटेड बायस्ट्रीमिंग है जो स्प्लिटिंग करता है और आपको NSArray वापस देता है ।
मुझे हाल ही में ऑब्जेक्टिव-सी स्ट्रिंग्स पर एक बहुत अच्छा ट्यूटोरियल मिला:
http://ios-blog.co.uk/tutorials/objective-c-strings-a-guide-for-beginners/
और मैंने सोचा कि यह ब्याज की हो सकती है:
यदि आप स्ट्रिंग को एक सरणी में विभाजित करना चाहते हैं, तो इसे प्राप्त करने के लिए घटकों का उपयोग करें।
NSString *yourString = @"This is a test string";
NSArray *yourWords = [myString componentsSeparatedByString:@" "];
// yourWords is now: [@"This", @"is", @"a", @"test", @"string"]
यदि आपको कई अलग-अलग वर्णों के एक सेट पर विभाजित करने की आवश्यकता है, तो NSString के घटकों का उपयोग करें
NSString *yourString = @"Foo-bar/iOS-Blog";
NSArray *yourWords = [myString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@"-/"]
];
// yourWords is now: [@"Foo", @"bar", @"iOS", @"Blog"]
ध्यान दें कि विभाजक स्ट्रिंग रिक्त नहीं हो सकता है। यदि आपको अपने व्यक्तिगत पात्रों में एक स्ट्रिंग को अलग करने की आवश्यकता है, तो बस स्ट्रिंग की लंबाई के माध्यम से लूप करें और प्रत्येक चार को एक नए स्ट्रिंग में परिवर्तित करें:
NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]];
for (int i=0; i < [myString length]; i++) {
NSString *ichar = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]];
[characters addObject:ichar];
}
NSString * str = [componentsJoinedByString:@""];
और आपके पास dic या एक से अधिक सरणी है, तो उसका उपयोग किया जाता है
NSString * result = [[array valueForKey:@"description"] componentsJoinedByString:@""];
NSArray *array = [NSArray arrayWithObjects:@"One",@"Two",@"Three", nil];
NSString *stringFromArray = [array componentsJoinedByString:@" "];
पहली पंक्ति वस्तुओं के साथ एक सरणी को इनिशियलाइज़ करती है। दूसरी पंक्ति उस सरणी के सभी तत्वों को "" के अंदर स्ट्रिंग जोड़कर जोड़ देती है और एक स्ट्रिंग लौटा देती है।
उद्देश्य सी समाधान
NSArray * array = @[@"1", @"2", @"3"];
NSString * stringFromArray = [[array valueForKey:@"description"] componentsJoinedByString:@"-"]; // "1-2-3"
जो एक समाधान की तलाश में हैं Swift
यदि सरणी में स्ट्रिंग्स हैं, तो आप स्ट्रिंग की ज्वाइन विधि का उपयोग कर सकते हैं:
var array = ["1", "2", "3"]
let stringFromArray = "-".join(array) // "1-2-3"
स्विफ्ट 2 में:
var array = ["1", "2", "3"]
let stringFromArray = array.joinWithSeparator("-") // "1-2-3"
स्विफ्ट 3 और 4 में
var array = ["1", "2", "3"]
let stringFromArray = array.joined(separator: "-") // "1-2-3"