Удалить символы из NSString? - PullRequest
92 голосов
/ 29 мая 2009
NSString *myString = @"A B C D E F G";

Я хочу удалить пробелы, поэтому новая строка будет "ABCDEFG".

Ответы [ 6 ]

276 голосов
/ 29 мая 2009

Вы можете использовать:

NSString *stringWithoutSpaces = [myString 
   stringByReplacingOccurrencesOfString:@" " withString:@""];
78 голосов
/ 29 мая 2009

Если вы хотите поддерживать более одного пробела за раз или поддерживать любые пробелы, вы можете сделать это:

NSString* noSpaces =
    [[myString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
                           componentsJoinedByString:@""];
11 голосов
/ 21 марта 2011

Взято из NSString

stringByReplacingOccurrencesOfString:withString:

Возвращает новую строку, в которой все вхождения целевой строки в получателе заменены другой данной строкой.

- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement

Параметры

1011 * целевой *

The string to replace.

замена

The string with which to replace target.

Возвращаемое значение

Новая строка, в которой все вхождения цели в приемнике заменены заменой.

10 голосов
/ 09 ноября 2012

Все выше будет работать нормально. Но правильный метод таков:

yourString = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

Это будет работать как метод TRIM. Это удалит все переднее и заднее пространство.

Спасибо

6 голосов
/ 12 августа 2012

если строка изменяемая , вы можете преобразовать ее на месте с помощью этой формы:

[string replaceOccurrencesOfString:@" "
                        withString:@""
                           options:0
                             range:NSMakeRange(0, string.length)];

это также полезно, если вы хотите, чтобы результат был изменяемым экземпляром входной строки:

NSMutableString * string = [concreteString mutableCopy];
[string replaceOccurrencesOfString:@" "
                        withString:@""
                           options:0
                             range:NSMakeRange(0, string.length)];
3 голосов
/ 23 октября 2012

Вы можете попробовать это

- (NSString *)stripRemoveSpaceFrom:(NSString *)str {
    while ([str rangeOfString:@"  "].location != NSNotFound) {
        str = [str stringByReplacingOccurrencesOfString:@" " withString:@""];
    }
    return str;
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...