2009-07-28 36 views
13

我有一個NSString,我在開始和結束時爲其修剪空格。現在我想讓字符串的第一個字母或字母顯示爲大寫字母。如何在iPhone中創建NSString Capital的第一個字母

是否有任何短缺可用,或者我需要採取第一個字母表,並將其轉換爲我自己的資本。

tnx。

回答

37

你必須手工完成。這是那些經常被衆多人建構成類別的東西之一,以至於Apple可能不敢將它作爲一種實際的方法添加,因爲它會產生類別衝突。

NSString *firstCapChar = [[string substringToIndex:1] capitalizedString]; 
NSString *cappedString = [string stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:firstCapChar]; 

當然也有使用的NSMutableString或者你喜歡使用單字符或什麼做任何其他的方式很多其他的解決方案。

+0

令人驚訝的傢伙,它的工作原理,我想要什麼。 – rkb 2009-07-28 19:35:51

+4

這不會強制其他字母爲小寫字母。對於這種情況的補充解決方案將如下所示:text = [NSString stringWithFormat:@「%@%@」,[[text substringToIndex:1] uppercaseString],[[text substringFromIndex:1] lowercaseString]]; – saulobrito 2012-04-27 19:36:25

7
- (NSString *)capitalizedString 

將使字符串中的所有單詞最初大寫。如果你的字符串只有一個或兩個單詞,這可能是你想要的。

Here is the NSString class reference

+0

不,我只是想要第一個字母是大寫字母,而不是整個字符串或完整的單詞。 – rkb 2009-07-28 18:49:45

+0

這很奇怪,但似乎不適用於ios? – Darmen 2012-01-16 05:01:23

0

@BrianRamsay答案是好的,但它使所有的字大寫,而不是第一個唯一。我創建了@RobNapier回答一個舒適的類別:

@interface NSString (Initcap) 

@property (readonly) NSString *initcappedString; 

@end 

@implementation NSString (Initcap) 

- (NSString *)initcappedString { 
    NSString *firstCapChar = [[self substringToIndex:1] capitalizedString]; 
    return [self stringByReplacingCharactersInRange:NSMakeRange(0,1) 
             withString:firstCapChar]; 
} 

@end 

下使用它像這樣str.initcappedString

相關問題