Objective-C에서 NSString의 대소 문자를 대문자로 바꾸거나 변경


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

누구나 신속하게 위의 내용이 필요한 경우 :

SWIFT 3.0 이상 :

이것은 문자열을 대문자로하고 첫 글자를 대문자로 만듭니다.

viewNoteDateMonth.text  = yourString.capitalized

이것은 문자열을 대문자로하고 모든 문자열을 대문자로 만듭니다.

viewNoteDateMonth.text  = yourString.uppercased()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.