Обрезать пробелы от конца строки NSString - PullRequest
363 голосов
/ 22 апреля 2011

Мне нужно удалить пробелы в конце строки. Как я могу это сделать? Пример: если строка "Hello " она должна стать "Hello"

Ответы [ 14 ]

1 голос
/ 16 декабря 2017

Решение описано здесь: Как удалить пробелы из правого конца NSString?

Добавьте следующие категории в NSString:

- (NSString *)stringByTrimmingTrailingCharactersInSet:(NSCharacterSet *)characterSet {
    NSRange rangeOfLastWantedCharacter = [self rangeOfCharacterFromSet:[characterSet invertedSet]
                                                               options:NSBackwardsSearch];
    if (rangeOfLastWantedCharacter.location == NSNotFound) {
        return @"";
    }
    return [self substringToIndex:rangeOfLastWantedCharacter.location+1]; // non-inclusive
}

- (NSString *)stringByTrimmingTrailingWhitespaceAndNewlineCharacters {
    return [self stringByTrimmingTrailingCharactersInSet:
            [NSCharacterSet whitespaceAndNewlineCharacterSet]];
}

И вы используетеэто так:

[yourNSString stringByTrimmingTrailingWhitespaceAndNewlineCharacters]
0 голосов
/ 24 июля 2018

let string = "Test Trimmed String"

Для удаления пробелов и новой строки используйте следующий код: -

let str_trimmed = yourString.trimmingCharacters (в: .whitespacesAndNewlines)

Для удаления только пробелов из строки используйте следующий код: -

let str_trimmed = yourString.trimmingCharacters (in: .whitespaces)

0 голосов
/ 02 сентября 2014
NSString* NSStringWithoutSpace(NSString* string)
{
    return [string stringByReplacingOccurrencesOfString:@" " withString:@""];
}
0 голосов
/ 13 декабря 2012

Я придумал эту функцию, которая в основном ведет себя так же, как в ответе Алекса:

-(NSString*)trimLastSpace:(NSString*)str{
    int i = str.length - 1;
    for (; i >= 0 && [str characterAtIndex:i] == ' '; i--);
    return [str substringToIndex:i + 1];
}

whitespaceCharacterSet, кроме самого пробела, включает в себя также символ табуляции, который в моем случае не мог появиться. Поэтому я думаю, что простого сравнения может быть достаточно.

...