我创建了以下方法,首先在 NSString 上使用内置的 convertStringToTitleCase 方法,但它实际上只是将每个单词的第一个字母大写。我在 .NET 中看到有一个 TextInfo.ToTitleCase 方法,它尝试了我想用 Objective-C 做的事情,但也达不到要求。
http://msdn.microsoft.com/en-us/library/system.globalization.textinfo.totitlecase.aspx
我写的开始方法如下。您将如何正确处理大写字符串的大小写?将单词数据库转换为所有大写/小写有帮助吗?
- (NSString *)convertStringToTitleCase:(NSString *)str {
NSMutableString *convertedStr = [NSMutableString stringWithString:[str capitalizedString]];
NSRange range = NSMakeRange(0, convertedStr.length);
// a list of words to always make lowercase could be placed here
[convertedStr replaceOccurrencesOfString:@" De "
withString:@" de "
options:NSLiteralSearch
range:range];
// a list of words to always make uppercase could be placed here
[convertedStr replaceOccurrencesOfString:@" Tv "
withString:@" TV "
options:NSLiteralSearch
range:range];
return convertedStr;
}