1. ホーム
  2. objective-c

[解決済み] Objective-CでNSStringの大文字・小文字を区別する。

2022-05-15 11:58:09

質問

のオブジェクトで見つかった文字列を大文字にするにはどうしたらよいかと考えていました。 NSMutableArray .

への NSArray には、文字列 'April' をインデックス2にて表示します。

に変更してほしい。 'APRIL' .

このようなシンプルなものはないのでしょうか?

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

どのように解決するのですか?

さあ、どうぞ。

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

乙です。

"april" でございます lowercase [NSString lowercaseString】を使用します。]

"APRIL" でございます UPPERCASE [NSString uppercaseString]を使用します。

"April May" でございます Capitalized/Word Caps [NSString capitalizedString】とする。]

"April may" でございます Sentence caps (メソッドがありません。以下の回避策を参照してください)

したがって、あなたが望むものは、"と呼ばれるものです。 大文字 "ではなく、" 資本的 "です。;)

Sentence Caps"については、通常、Sentence"は文字列全体を意味することに留意する必要があります。実際の文章を作成する場合は、以下の2番目の方法を、それ以外の場合は1番目の方法を使用してください。

@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