测试NSString是否以空格或换行符结尾?

时间:2011-05-30 03:52:59

标签: objective-c nsstring

如何测试NSString的最后一个字符是否为空格或换行符。

我可以做[[NSCharacter whitespaceAndNewlineCharacterSet] characterIsMember:lastChar]。但是,如何获取NSString的最后一个字符?

或者,我应该只使用- [NSString rangeOfCharacterFromSet:options:]进行反向搜索吗?

3 个答案:

答案 0 :(得分:22)

你走在正确的轨道上。以下显示了如何检索字符串中的最后一个字符;然后,您可以检查它是否是您建议的whitespaceAndNewlineCharacterSet的成员。

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

答案 1 :(得分:6)

也许您可以在length对象上使用NSString来获取其长度,然后使用:

- (unichar)characterAtIndex:(NSUInteger)index

indexlength - 1。现在你有了可以与[NSCharacter whitespaceAndNewlineCharacterSet]进行比较的最后一个字符。

答案 2 :(得分:2)

@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