Проверьте, завершает ли NSString символ пробела или символ новой строки?
Как проверить, является ли последний символ символа NSString
символом пробела или символа новой строки.
Я мог бы сделать [[NSCharacter whitespaceAndNewlineCharacterSet] characterIsMember:lastChar]
. Но как я могу получить последний символ NSString
?
Или, должен ли я использовать - [NSString rangeOfCharacterFromSet:options:]
с обратным поиском?
Ответы
Ответ 1
Ты на правильном пути. Ниже показано, как вы можете получить последний символ в строке; вы можете проверить, является ли он членом whitespaceAndNewlineCharacterSet
, как вы предложили.
unichar last = [myString characterAtIndex:[myString length] - 1];
if ([[NSCharacterSet whitespaceAndNewlineCharacterSet] characterIsMember:last]) {
// ...
}
Ответ 2
Возможно, вы можете использовать length
для объекта NSString
, чтобы получить его длину, а затем использовать:
- (unichar)characterAtIndex:(NSUInteger)index
с index
как length - 1
. Теперь у вас есть последний символ, который можно сравнить с [NSCharacter whitespaceAndNewlineCharacterSet]
.
Ответ 3
@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