使用objective-c获取字符串中每个单词的第一个字母

Sle*_*lee 12 objective-c

我想要做的例子:

String ="这是我的句子"

我希望得到这个结果:"TIMS"

出于某种原因,我正在努力使用objective-c和字符串

Dav*_*ong 32

天真的解决方案:

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]];
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这对于分解单词有点愚蠢(只是通过空格,这并不总是最好的方法),并且它不处理UTF16 +字符.

如果需要处理UTF16 +字符,if()请将循环内的语句更改为:

if ([word length] > 0) {
  NSString * firstLetter = [word substringWithRange:[word rangeOfComposedCharacterSequenceAtIndex:0]];
  [firstCharacters appendString:[firstLetter uppercaseString]];
}
Run Code Online (Sandbox Code Playgroud)