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;
}