如何测试NSString
的最后一个字符是否为空格或换行符。
我可以做[[NSCharacter whitespaceAndNewlineCharacterSet] characterIsMember:lastChar]
。但是,如何获取NSString
的最后一个字符?
或者,我应该只使用- [NSString rangeOfCharacterFromSet:options:]
进行反向搜索吗?
答案 0 :(得分:22)
你走在正确的轨道上。以下显示了如何检索字符串中的最后一个字符;然后,您可以检查它是否是您建议的whitespaceAndNewlineCharacterSet
的成员。
unichar last = [myString characterAtIndex:[myString length] - 1];
if ([[NSCharacterSet whitespaceAndNewlineCharacterSet] characterIsMember:last]) {
// ...
}
答案 1 :(得分:6)
也许您可以在length
对象上使用NSString
来获取其长度,然后使用:
- (unichar)characterAtIndex:(NSUInteger)index
index
为length - 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