it-swarm.com.de

Groß- oder Kleinschreibung eines NSStrings in Objective-C

Ich habe mich gefragt, wie man eine Zeichenfolge in einem Objekt in einer NSMutableArray großschreibt.

Eine NSArray enthält die Zeichenfolge 'April' am Index 2.
Ich möchte, dass dies in 'APRIL' geändert wird.

Gibt es so etwas einfaches?

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

Hier gehts:

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

Übrigens:
"april" ist lowercase[NSString KleinschreibungString]
"APRIL" ist UPPERCASE[NSString GroßbuchstabenString]
"April May" ist Capitalized/Word Caps[NSString capitalizedString]
"April may" ist Sentence caps(Methode fehlt; siehe Abhilfemaßnahme)

Daher heißt das, was Sie wollen "Großbuchstaben", nicht "Großbuchstaben". ;)

Bei "Satzkappen" muss man bedenken, dass "Satz" normalerweise "ganze Zeichenfolge" bedeutet. Wenn Sie echte Sätze wünschen, verwenden Sie die zweite Methode, ansonsten die erste:

@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
384
Regexident
19
theChrisKent

Falls jemand das oben genannte in Swift benötigt:

Swift 3.0 und höher: 

dadurch wird Ihre Zeichenfolge groß geschrieben, und der erste Buchstabe muss groß sein: 

viewNoteDateMonth.text  = yourString.capitalized

dadurch wird Ihre Zeichenfolge in Großbuchstaben geschrieben. 

viewNoteDateMonth.text  = yourString.uppercased()
0
MhmdRizk