2015-05-26 61 views
0

我有一個要求,在句子中所有單詞的第一個字母需要大寫。我通過下面的代碼iOS - 字符串大寫,後跟一個數字

myString = [myString capitalizedString]; 

實現這可是有這個問題。如果這個詞與如「32abc」數字開始,轉增後它更改爲「32Abc」。我需要它是「32abc」。

幫助將不勝感激。

+0

,如果你有什麼@ 「32Abc」,你想讓它是@「32abc」還是@「32Abc」? –

+0

如果它是@「32Abc」,它應該顯示爲@「32Abc」本身。 – bhoomi

回答

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]]; 
+0

我認爲OP是在談論句子,而不是一個單詞「32abc」。 – Sulthan

+0

@Sulthan無論句子還是單詞,它都會做。 –

+0

input = @「這是一個32abc的句子。」 預期輸出(見OP)是「這是一個32abc的句子」。 – Sulthan

0

試試這個:

myString = [myString stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[myString substringToIndex:1] uppercaseString]]; 
相關問題