2011-05-30 10 views
11

मैं कैसे जांचूं कि NSString का अंतिम अक्षर एक व्हाइटस्पेस या न्यूलाइन कैरेक्टर है या नहीं।परीक्षण अगर एनएसएसटींग व्हाइटस्पेस या न्यूलाइन कैरेक्टर के साथ समाप्त होता है?

मैं [[NSCharacter whitespaceAndNewlineCharacterSet] characterIsMember:lastChar] कर सकता था। लेकिन, मैं NSString का अंतिम अक्षर कैसे प्राप्त करूं?

या, क्या मुझे एक रिवर्स खोज के साथ - [NSString rangeOfCharacterFromSet:options:] का उपयोग करना चाहिए?

उत्तर

22

आप सही रास्ते पर हैं। निम्नलिखित दिखाता है कि आप स्ट्रिंग में अंतिम वर्ण कैसे प्राप्त कर सकते हैं; फिर आप सुझाव दे सकते हैं कि यह whitespaceAndNewlineCharacterSet का सदस्य है जैसा आपने सुझाव दिया था।

unichar last = [myString characterAtIndex:[myString length] - 1]; 
if ([[NSCharacterSet whitespaceAndNewlineCharacterSet] characterIsMember:last]) { 
    // ... 
} 
+1

आप 2 मिनट हैं। मुझसे तेज़ – Robin

+0

यह उत्तर स्वीकार्य होना चाहिए – hamid

1
@implementation NSString (Additions) 

- (BOOL)endsInWhitespaceOrNewlineCharacter { 
    NSUInteger stringLength = [self length]; 
    if (stringLength == 0) { 
     return NO; 
    } 
    unichar lastChar = [self characterAtIndex:stringLength-1]; 
    return [[NSCharacterSet whitespaceAndNewlineCharacterSet] characterIsMember:lastChar]; 
} 

@end 
6

शायद तुम एक NSString वस्तु पर length उपयोग कर सकते हैं इसकी लंबाई और फिर करने के लिए उपयोग करें:

- (unichar)characterAtIndex:(NSUInteger)index 

indexlength - 1 के रूप में के साथ। अब आपके पास अंतिम चरित्र है जिसका तुलना [NSCharacter whitespaceAndNewlineCharacterSet] से की जा सकती है।

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