ऑब्जेक्टिव-सी में एनएसएसट्रिंग के मामले को कैपिटलाइज़ या बदलना


140

मैं सोच रहा था कि एक वस्तु में पाए जाने वाले स्ट्रिंग को कैसे कैपिटल किया जाए NSMutableArray

एक NSArrayस्ट्रिंग 'April'सूचकांक 2. पर
मैं इस के लिए बदला जा करना चाहते हैं 'APRIL'

क्या ऐसा कुछ सरल है?

viewNoteDateMonth.text  = [[displayDate objectAtIndex:2] capitalized];

जवाबों:


391

ये रहा:

viewNoteDateMonth.text  = [[displayDate objectAtIndex:2] uppercaseString];

Btw:
"april"है lowercase[NSString lowercaseString]
"APRIL" है UPPERCASE[NSString uppercaseString]
"April May" है Capitalized/Word Caps[NSString capitalizedString]
"April may" है Sentence caps(विधि लापता, नीचे समाधान देखने)

इसलिए जो आप चाहते हैं उसे " अपरकेस " कहा जाता है , न कि " कैपिटलाइज़्ड "। ;)

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

@interface NSString ()

- (NSString *)sentenceCapitalizedString; // sentence == entire string
- (NSString *)realSentenceCapitalizedString; // sentence == real sentences

@end

@implementation NSString

- (NSString *)sentenceCapitalizedString {
    if (![self length]) {
        return [NSString string];
    }
    NSString *uppercase = [[self substringToIndex:1] uppercaseString];
    NSString *lowercase = [[self substringFromIndex:1] lowercaseString];
    return [uppercase stringByAppendingString:lowercase];
}

- (NSString *)realSentenceCapitalizedString {
    __block NSMutableString *mutableSelf = [NSMutableString stringWithString:self];
    [self enumerateSubstringsInRange:NSMakeRange(0, [self length])
                             options:NSStringEnumerationBySentences
                          usingBlock:^(NSString *sentence, NSRange sentenceRange, NSRange enclosingRange, BOOL *stop) {
        [mutableSelf replaceCharactersInRange:sentenceRange withString:[sentence sentenceCapitalizedString]];
    }];
    return [NSString stringWithString:mutableSelf]; // or just return mutableSelf.
}

@end


1

यदि किसी को स्विफ्ट में उपरोक्त की जरूरत है:

स्विफ्ट 3.0 और उससे अधिक:

यह आपकी स्ट्रिंग को कैपिटल करेगा, पहला अक्षर कैपिटल बनाएं:

viewNoteDateMonth.text  = yourString.capitalized

यह आपकी स्ट्रिंग को बड़ा करेगा, सभी स्ट्रिंग को ऊपरी स्थिति बना देगा:

viewNoteDateMonth.text  = yourString.uppercased()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.