ObjC / iOS – 将每个单词的首字母大写,而不修改其他字母

有没有一种简单的方法可以将字符串“dino mcCool”转换为字符串“Dino McCool”?

使用’capitalizedString’方法我会得到@“Dino Mccool”

解决方法

您可以枚举字符串的单词并分别修改每个单词.
即使单词由空格字符以外的其他字符分隔,这也有效:
NSString *str = @"dino mcCool. foo-bAR";
NSMutableString *result = [str mutableCopy];
[result enumerateSubstringsInRange:NSMakeRange(0,[result length])
                           options:NSStringEnumerationByWords
                        usingBlock:^(NSString *substring,NSRange substringRange,NSRange enclosingRange,BOOL *stop) {
        [result replaceCharactersInRange:NSMakeRange(substringRange.location,1)
                              withString:[[substring substringToIndex:1] uppercaseString]];
}];
NSLog(@"%@",result);
// Output: Dino McCool. Foo-BAR

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...