Wielkość liter lub zmiana przypadku NSString w Objective-C
Zastanawiałem się, jak kapitalizować łańcuch znaleziony w obiekcie w NSMutableArray
.
An NSArray
zawiera łańcuch 'April'
w indeksie 2.
Chcę to zmienić na 'APRIL'
.
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] capitalized];
133
Author: Josh Caswell, 2011-04-07
2 answers
Here ya go:
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] uppercaseString];
Btw:"april"
na lowercase
➔ [NSString lowercaseString]"APRIL"
na UPPERCASE
➔ [NSString uppercaseString]"April May"
na Capitalized/Word Caps
➔ [NSString capitalizedString]"April may"
na Sentence caps
➔ (brak metody; zobacz obejście poniżej)
Stąd to, co chcesz, nazywa się "wielkimi literami ", a nie "wielką literą ". ;)
Co do "sentence Caps" trzeba pamiętać, że zwykle "Sentence" oznacza "cały ciąg". Jeśli chcesz dla prawdziwych zdań użyj drugiej metody, poniżej, w przeciwnym razie pierwszej:
@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
377
Author: Regexident,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-26 13:16:36
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-26 13:16:36
viewNoteDateMonth.text = [[displayDate objectAtIndex:2] uppercaseString];
Możesz również użyć lowercaseString i capitalizedString
19
Author: theChrisKent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-07 19:53:46
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-07 19:53:46