2009-07-28 13 views
13

में एनएसएसटींग कैपिटल का पहला अक्षर कैसे बनाएं I NSString है जिसमें मैं रिक्त स्थान के लिए शुरुआत और अंत में ट्रिम कर रहा हूं। अब मैं पूंजी के रूप में दिखाई देने के लिए स्ट्रिंग का पहला वर्णमाला या अक्षर बनाना चाहता हूं।आईफोन देव

क्या कोई छोटा सा उपलब्ध है या मुझे पहले वर्णमाला लेने और इसे अपने आप में बदलने के लिए आवश्यक है।

tnx।

उत्तर

37

आपको इसे हाथ से करना है। यह उन चीजों में से एक है जिसे इतनी बार लोगों द्वारा श्रेणियों में बनाया गया है कि ऐप्पल शायद इसे वास्तविक विधि के रूप में जोड़ने की हिम्मत नहीं करता क्योंकि यह श्रेणी टकराव उत्पन्न करेगा।

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

वहाँ के पाठ्यक्रम NSMutableString या किसी अन्य तरह से आप unichar या जो कुछ भी उपयोग कर इसे करना पसंद का उपयोग कर कई अन्य समाधान कर रहे हैं।

+0

कमाल दोस्त, यह काम करता है, जो मैं चाहता हूँ। – rkb

+4

यह अन्य अक्षरों को लोअरकेस होने के लिए लागू नहीं करेगा। उस मामले के लिए एक पूरक समाधान कुछ ऐसा होगा: text = [NSString stringWithFormat: @ "% @% @", [[text substringToIndex: 1] uppercaseString], [[text substringFromIndex: 1] lowercaseString]]; – saulobrito

7
- (NSString *)capitalizedString 

प्रारंभ में पूंजीकृत स्ट्रिंग में सभी शब्द बना देगा। यदि आपके स्ट्रिंग में केवल एक या दो शब्द हैं, तो यह वही हो सकता है जो आप चाहते हैं।

Here is the NSString class reference

+0

नहीं, मैं सिर्फ पहला वर्णमाला पूंजी होना चाहता हूं, न कि पूरी स्ट्रिंग या पूर्ण शब्द। – rkb

+0

यह अजीब बात है, लेकिन ऐसा लगता है कि यह आईओएस के लिए उपलब्ध नहीं है? – Darmen

0

@BrianRamsay उत्तर अच्छा है लेकिन यह केवल पहले शब्दों की बजाय सभी शब्दों को पूंजीकृत बनाता है।

@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 की तरह उपयोग: मैं @RobNapier जवाब के लिए एक आरामदायक श्रेणी बनाई।

संबंधित मुद्दे