Проверить, заканчивается ли строка NSString пробелом или символом новой строки? - PullRequest
12 голосов
/ 30 мая 2011

Как проверить, является ли последний символ NSString пробелом или символом новой строки.

Я мог бы сделать [[NSCharacter whitespaceAndNewlineCharacterSet] characterIsMember:lastChar]. Но как мне получить последний символ NSString?

Или мне просто использовать - [NSString rangeOfCharacterFromSet:options:] с обратным поиском?

Ответы [ 3 ]

22 голосов
/ 30 мая 2011

Вы на правильном пути. Ниже показано, как вы можете получить последний символ в строке; затем вы можете проверить, является ли он членом whitespaceAndNewlineCharacterSet, как вы предложили.

unichar last = [myString characterAtIndex:[myString length] - 1];
if ([[NSCharacterSet whitespaceAndNewlineCharacterSet] characterIsMember:last]) {
  // ...
}
6 голосов
/ 30 мая 2011

Может быть, вы можете использовать length на NSString объекте, чтобы получить его длину, а затем использовать:

- (unichar)characterAtIndex:(NSUInteger)index

с index как length - 1. Теперь у вас есть последний символ, который можно сравнить с [NSCharacter whitespaceAndNewlineCharacterSet].

2 голосов
/ 30 мая 2011
@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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...