我有一个要求,即句子中所有单词的第一个字母需要大写。我通过以下代码
实现了这一目标myString = [myString capitalizedString];
但是这有一个问题..如果单词以数字开头,例如" 32abc",大写后它变为" 32Abc"。我需要它是" 32abc"。
帮助将不胜感激。
答案 0 :(得分:1)
方法1
NSString *input = @"32abc";
/* get first char */
NSString *firstChar = [input substringToIndex:1];
/* remove any diacritic mark */
NSString *folded = [firstChar stringByFoldingWithOptions:NSDiacriticInsensitiveSearch locale:[NSLocale currentLocale]];
/* create the new string */
NSString *capitalisedSentence = [[folded uppercaseString] stringByAppendingString:[input substringFromIndex:1]];
方法2(优化)
NSString *input = @"32abc";
NSString *capitalisedSentence = [input stringByReplacingCharactersInRange:NSMakeRange(0,1)
withString:[[input substringToIndex:1] capitalizedString]];
答案 1 :(得分:0)
试试这个:
myString = [myString stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[myString substringToIndex:1] uppercaseString]];