NSString *myString = @"A B C D E F G";
Я хочу удалить пробелы, чтобы новая строка была «ABCDEFG».
Ответы:
Вы можете использовать:
NSString *stringWithoutSpaces = [myString
stringByReplacingOccurrencesOfString:@" " withString:@""];
Если вы хотите поддерживать более одного пробела за раз или поддерживать любые пробелы, вы можете сделать это:
NSString* noSpaces =
[[myString componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]
componentsJoinedByString:@""];
A B C D E F
.
Взято из NSString
stringByReplacingOccurrencesOfString:withString:
Возвращает новую строку, в которой все вхождения целевой строки в получателе заменены другой заданной строкой.
- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement
Параметры
цель
The string to replace.
замена
The string with which to replace target.
Возвращаемое значение
Новая строка, в которой все вхождения цели в приемнике заменяются на замену.
Все выше будет работать нормально. Но правильный метод такой:
yourString = [yourString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
Он будет работать как метод TRIM. Он удалит все переднее и заднее пространство.
Спасибо
[NSCharacterSet whitespaceCharacterSet]
и [NSCharacterSet whitespaceAndNewlineCharacterSet]
.
если строка изменяема , вы можете преобразовать ее на месте, используя эту форму:
[string replaceOccurrencesOfString:@" "
withString:@""
options:0
range:NSMakeRange(0, string.length)];
это также полезно, если вы хотите, чтобы результат был изменяемым экземпляром входной строки:
NSMutableString * string = [concreteString mutableCopy];
[string replaceOccurrencesOfString:@" "
withString:@""
options:0
range:NSMakeRange(0, string.length)];