2010-07-15 4 views

ответ

31

Наивное решение:

NSMutableString * firstCharacters = [NSMutableString string]; 
NSArray * words = [@"this is my sentence" componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
for (NSString * word in words) { 
    if ([word length] > 0) { 
    NSString * firstLetter = [word substringToIndex:1]; 
    [firstCharacters appendString:[firstLetter uppercaseString]]; 
    } 
} 

Обратите внимание, что это своего рода глупо о разрыве слов (только собирается пробелами, что не всегда лучший подход), и он не обрабатывает utf16 + символы.

Если вам нужно обрабатывать utf16 + символы, изменить if() заявление внутри цикла к:

if ([word length] > 0) { 
    NSString * firstLetter = [word substringWithRange:[word rangeOfComposedCharacterSequenceAtIndex:0]]; 
    [firstCharacters appendString:[firstLetter uppercaseString]]; 
} 
+0

, как использовать это в стрижа? – 2015-11-09 10:45:50

1

Вы всегда можете использовать метод cStringUsingEncoding: и просто итерируем константный символ *. Или лучше, вы можете использовать метод getCharacters:

Когда вы итерации, вам просто нужно сделать цикл for и проверить, является ли предыдущий символ символом '' и добавляет его к вашей временной переменной. Если вы хотите, чтобы он был прописным, просто используйте uppercaseString в конце.

см яблочного документа для получения дополнительной информации: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/getCharacters:range:

Я также бороться со строками когда-то, имена функций не очень похожи на другие языки, как C++/Java, например.

Смежные вопросы