Je me demandais comment mettre en majuscule une chaîne trouvée dans un objet dans un NSMutableArray
.
Un NSArray
contient la chaîne 'April'
à l'index 2.
Je veux que cela soit changé en 'APRIL'
.
Y a-t-il quelque chose de simple comme ça?
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] capitalized];
Voilà
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] uppercaseString];
Btw:"april"
est lowercase
[NSString lowercaseString] }"APRIL"
est UPPERCASE
[NSString uppercaseString]"April May"
est Capitalized/Word Caps
➔ [NSString capitalizedString]"April may"
est Sentence caps
(méthode manquante; voir la solution de contournement ci-dessous)
Par conséquent, ce que vous voulez s'appelle "majuscule" et non "en majuscule". ;)
En ce qui concerne "Sentence Caps", il faut garder à l'esprit qu'habituellement "Sentence" signifie "chaîne entière". Si vous souhaitez des phrases réelles, utilisez la deuxième méthode, ci-dessous, sinon la première:
@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];
Vous pouvez également utiliser lowercaseString et capitalizedString
Si quelqu'un avait besoin de ce qui précède dans Swift:
Swift 3.0 et supérieur:
cela va mettre votre chaîne en majuscule, faites la première lettre en majuscule:
viewNoteDateMonth.text = yourString.capitalized
cela va mettre votre chaîne en majuscule, en faisant toute la chaîne en majuscule:
viewNoteDateMonth.text = yourString.uppercased()