Capitalize or change case of an NSString in Objective-C Capitalize or change case of an NSString in Objective-C objective-c objective-c

Capitalize or change case of an NSString in Objective-C


Here ya go:

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

Btw:
"april" is lowercase[NSString lowercaseString]
"APRIL" is UPPERCASE[NSString uppercaseString]
"April May" is Capitalized/Word Caps[NSString capitalizedString]
"April may" is Sentence caps(method missing; see workaround below)

Hence what you want is called "uppercase", not "capitalized". ;)

As for "Sentence Caps" one has to keep in mind that usually "Sentence" means "entire string". If you wish for real sentences use the second method, below, otherwise the first:

@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


In case anyone needed the above in swift :

SWIFT 3.0 and above :

this will capitalize your string, make the first letter capital :

viewNoteDateMonth.text  = yourString.capitalized

this will uppercase your string, make all the string upper case :

viewNoteDateMonth.text  = yourString.uppercased()