IOS पर सबस्ट्रिंग में स्ट्रिंग कैसे विभाजित करें?


83

मुझे NSStringसर्वर से प्राप्त हुआ । अब मैं इसे उस प्रतिस्थापन में विभाजित करना चाहता हूं जिसकी मुझे आवश्यकता है। स्ट्रिंग को कैसे विभाजित करें?

उदाहरण के लिए:

substring1: दूसरे वर्ण से 5 वें वर्ण तक पढ़ा

substring2: 6 वर्ण से 10 वर्ण पढ़े।


1
आपको iPhone को iOS में बदलना चाहिए।
रिकार्डो

जवाबों:


223

आप NString के घटकों का उपयोग करके स्ट्रिंग को एक स्ट्रिंग से विभाजित कर सकते हैं ।

प्रलेखन से उदाहरण:

NSString *list = @"Norman, Stanley, Fletcher";
NSArray *listItems = [list componentsSeparatedByString:@", "];

क्या मैं उन तारों को विभाजित कर सकता हूं जिनके अलग-अलग निशान अलग-अलग हैं? जैसे @ "ए, बी ^ सी ~ डी"
चिल्ली झोंग

8
आपको NSString के "ComponentsSeparatedByCharactersInSet:" का उपयोग कई वर्णों में विभाजित करने में सक्षम होना चाहिए।
कोडेलॉजिक

हैलो, मैं सफलतापूर्वक स्ट्रिंग को अलग करता हूं, लेकिन मैं चाहता हूं कि UILabel में किसी भी विचार को अलग किया जाए?
निकुंज जादव

अपने सरणी के माध्यम से Iterate करें: (int i = 0; i <[listItems count]; i ++) और उपयोग [listItems objectAtIndex: i];
डोमिनेंस

धन्यवाद! मैं थोड़ा अलग बनाता हूं: `NSArray * listItems = [सूची घटकोंसुविधाएँविशेषज्ञ इनसेट: [NSCharacterSet whitespaceCharacterSet]];
innuendelplay

39

NSString के पास इसके लिए कुछ तरीके हैं:

[myString substringToIndex:index];
[myString substringFromIndex:index];
[myString substringWithRange:range];

अधिक जानकारी के लिए NSString के लिए प्रलेखन की जाँच करें।


1

मैंने भागों की एक निर्दिष्ट मात्रा में तारों को विभाजित करने के लिए एक छोटी विधि लिखी। ध्यान दें कि यह केवल एकल विभाजक वर्णों का समर्थन करता है। लेकिन मुझे लगता है कि यह एनएसएसट्रिंग को विभाजित करने का एक कुशल तरीका है।

//split string into given number of parts
-(NSArray*)splitString:(NSString*)string withDelimiter:(NSString*)delimiter inParts:(int)parts{
    NSMutableArray* array = [NSMutableArray array];

    NSUInteger len = [string length];
    unichar buffer[len+1];

    //put separator in buffer
    unichar separator[1];
    [delimiter getCharacters:separator range:NSMakeRange(0, 1)];

    [string getCharacters:buffer range:NSMakeRange(0, len)];

    int startPosition = 0;
    int length = 0;
    for(int i = 0; i < len; i++) {

        //if array is parts-1 and the character was found add it to array
        if (buffer[i]==separator[0] && array.count < parts-1) {
            if (length>0) {
                [array addObject:[string substringWithRange:NSMakeRange(startPosition, length)]];

            }

            startPosition += length+1;
            length = 0;

            if (array.count >= parts-1) {
                break;
            }

        }else{
            length++;
        }

    }

    //add the last part of the string to the array
    [array addObject:[string substringFromIndex:startPosition]];

    return array;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.