उद्देश्य-सी स्प्लिट ()?


110

क्या उद्देश्य सी में तारों को विभाजित करने का कोई तरीका है? मेरा मतलब इस तरह है - इनपुट स्ट्रिंग हां: 0: 42: मान की सरणी में (हां, 0,42, मान)?

जवाबों:


199
NSArray *arrayOfComponents = [yourString componentsSeparatedByString:@":"];

जहां आपके स्ट्रिंग में शामिल है @"one:two:three"

और arrayOfCompords में सम्‍मिलित होगा @[@"one", @"two", @"three"]

और आप प्रत्येक के साथ उपयोग कर सकते हैं NSString *comp1 = arrayOfComponents[0];

( https://developer.apple.com/documentation/foundation/nsstring/1413214-compentsseparatedbystring )


29
नोट उलटा है [NSArray componentsJoinedByString:]
devios1

मुझे एक समस्या है अगर मैं @ "नमस्ते दुनिया" करता हूं। यह 3 वस्तुओं की एक सरणी लौटाएगा, जिनमें से अंतिम में @ "" है। मैं सरणी के माध्यम से लूप कर सकता हूं और इसे हटा सकता हूं, लेकिन क्या कोई बेहतर तरीका है?
औ रइस

1
@AuRis पहले स्ट्रिंग से व्हाट्सएप को ट्रिम करने की कोशिश करते हैं: [स्ट्रिंग stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];
दंक्स

95

इसे इस्तेमाल करे:

    NSString *testString= @"It's a rainy day";
    NSArray *array = [testString componentsSeparatedByString:@" "];


4

इस का उपयोग करें: [[स्ट्रिंग घटकोंसुरक्षितबस्ट्रिंग: @ ","] [0];


6
मुझे अभी भी आश्चर्य है कि लोग ऐसे प्रश्नों का उत्तर क्यों देते हैं जो एजीईएस पुराने हैं और जिन्होंने उत्तर स्थापित किए हैं ... आपका उल्लेख नहीं करना सिर्फ पहला तत्व चुनता है जिसका कोई मतलब नहीं है।
क्रिश्चियन स्टीवर्ट

0

यदि आप पहला शब्द चाहते हैं:

[[string componentsSeparatedByString:@" "] objectAtIndex:0];
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.