142

我想知道如何将在NSMutableArray.

An包含索引 2 处NSArray的字符串。 我希望将其更改为.'April'
'APRIL'

有这样简单的事情吗?

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

3 回答 3

394

给你:

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

顺便说一句:
"april"is lowercase[NSString lowercaseString]
"APRIL" is UPPERCASE[NSString uppercaseString]
"April May" is Capitalized/Word Caps[NSString capitalizedString]
"April may" is 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
于 2011-04-07T19:52:08.810 回答
20
viewNoteDateMonth.text  = [[displayDate objectAtIndex:2] uppercaseString];

文档:http: //developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/uppercaseString

您还可以使用小写字符串大写字符串

于 2011-04-07T19:53:46.847 回答
1

如果有人在 swift 中需要上述内容:

SWIFT 3.0 及以上版本:

这将使您的字符串大写,使第一个字母大写:

viewNoteDateMonth.text  = yourString.capitalized

这将使您的字符串大写,使所有字符串大写:

viewNoteDateMonth.text  = yourString.uppercased()
于 2018-11-14T13:16:51.457 回答