Как использовать для своей выгоды первое слово предложения в Objective C?

Я уже нашел, как использовать для своей выгоды все слова предложения, но не первое слово только.

NSString *txt =@"hi my friends!"
[txt capitalizedString];

Я не хочу изменяться на нижний регистр и использовать для своей выгоды первый символ. Я хотел бы использовать для своей выгоды первое слово только без изменения другие.

34
задан Johan Kool 13 August 2011 в 17:01
поделиться

3 ответа

Вот еще один вариант:

NSString *txt = @"hi my friends!";
txt = [txt stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[txt substringToIndex:1] uppercaseString]];

Для языка Swift:

txt.replaceRange(txt.startIndex...txt.startIndex, with: String(txt[txt.startIndex]).capitalizedString)
118
ответ дан 27 November 2019 в 15:52
поделиться

Используйте

- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator

и введите первый объект в массиве с заглавной буквы, а затем используйте

- (NSString *)componentsJoinedByString:(NSString *)separator

, чтобы соединить их обратно

8
ответ дан 27 November 2019 в 15:52
поделиться

Чтобы были варианты, я бы предложил:

NSString *myString = [NSString stringWithFormat:@"this is a string..."];

char *tmpStr = calloc([myString length] + 1,sizeof(char));

[myString getCString:tmpStr maxLength:[myString length] + 1 encoding:NSUTF8StringEncoding];

int sIndex = 0;

/* skip non-alpha characters at beginning of string */
while (!isalpha(tmpStr[sIndex])) {
    sIndex++;
}

toupper(tmpStr[sIndex]);

myString = [NSString stringWithCString:tmpStr encoding:NSUTF8StringEncoding];

Я на работе и у меня нет моего Mac, чтобы проверить это, но если я правильно помню, вы не можете использовать [myString cStringUsingEncoding:NSUTF8StringEncoding], потому что он возвращает const char *.

0
ответ дан 27 November 2019 в 15:52
поделиться