Objective-C'deki bir NSString örneğinden büyük harf alma veya değiştirme


140

Ben bir nesnede bulunan bir dize büyük harfle nasıl merak ediyorum NSMutableArray.

Bir dizin 2 NSArrayde dize içerir. Bu değiştirilmesini istiyorum .'April'
'APRIL'

Bunun gibi basit bir şey var mı?

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

Yanıtlar:


391

İşte başlıyoruz:

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

Arada:
"april"bir lowercase[NSString lowercaseString]
"APRIL" olduğu UPPERCASE[NSString uppercaseString]
"April May" olduğu Capitalized/Word Caps[NSString capitalizedString]
"April may" olduğu Sentence caps(aşağıda çözüm bakınız yöntemi eksik)

Dolayısıyla ne istediğini "denir büyük ", "değil harfle ". ;)

"Cümle Kapakları" gelince, genellikle "Cümle" nin "tüm dize" anlamına geldiğini unutmamak gerekir. Gerçek cümleler istiyorsanız, aşağıdaki ikinci yöntemi, aksi takdirde ilkini kullanın:

@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

Herhangi birinin hızlı bir şekilde yukarıdakilere ihtiyacı olması durumunda:

SWIFT 3.0 ve üstü:

bu dizenizi büyük harfle yazacak, ilk harf büyük olacak:

viewNoteDateMonth.text  = yourString.capitalized

bu dizenizi büyük harfle yazacak, tüm dizeyi büyük harfe çevirecektir:

viewNoteDateMonth.text  = yourString.uppercased()
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.