iOS - 后跟数字的字符串大小写

时间:2015-05-26 11:38:52

标签: ios objective-c string capitalization

我有一个要求,即句子中所有单词的第一个字母需要大写。我通过以下代码

实现了这一目标
myString = [myString capitalizedString];

但是这有一个问题..如果单词以数字开头,例如" 32abc",大写后它变为" 32Abc"。我需要它是" 32abc"。

帮助将不胜感激。

2 个答案:

答案 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]];