NSMutableArray
内のオブジェクトで見つかった文字列を大文字にする方法を考えていました。
NSArray
には、インデックス2の文字列'April'
が含まれます。
これを'APRIL'
に変更します。
このような単純なものはありますか?
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] capitalized];
ここに行く:
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] uppercaseString];
ところで:"april"
はlowercase
is [NSString lowercaseString]"APRIL"
はUPPERCASE
is [NSString uppercaseString]"April May"
はCapitalized/Word Caps
is [NSString capitalizedString]"April may"
はSentence caps
➔(メソッドがありません。以下の回避策を参照してください)
したがって、必要なものは「uppercase」と呼ばれ、「capitalized」ではありません。 ;)
「Sentence Caps」については、通常「Sentence」は「string」全体を意味することに留意する必要があります。実際の文章を希望する場合は、以下の2番目の方法を使用します。それ以外の場合は最初の方法を使用します。
@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
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] uppercaseString];
lowercaseString および capitalizedString を使用することもできます
Swiftで上記が必要な場合:
Swift 3.0以降:
これは文字列を大文字にし、最初の文字を大文字にします:
viewNoteDateMonth.text = yourString.capitalized
これは文字列を大文字にし、すべての文字列を大文字にします:
viewNoteDateMonth.text = yourString.uppercased()