Удалить пробел из строки в Objective-C - PullRequest
71 голосов
/ 10 января 2011

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

Ответы [ 4 ]

205 голосов
/ 10 января 2011

Для этого есть метод в классе NSString. Проверьте stringByTrimmingCharactersInSet:(NSCharacterSet *)set. Вы должны использовать [NSCharacterSet whitespaceCharacterSet] в качестве параметра:

NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
68 голосов
/ 10 января 2011

Вы можете использовать метод stringByTrimmingCharactersInSet NSString с пробеломAndNewlineCharacterSet NSCharacterSet как таковой:

NSString *testString = @"  Eek! There are leading and trailing spaces  ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
                             [NSCharacterSet whitespaceAndNewlineCharacterSet]];
6 голосов
/ 04 мая 2014

Я написал быстрый макрос, чтобы уменьшить объем кода, который необходимо написать.

Шаг 1. Отредактируйте файл PCH вашего приложения, он должен называться Project-Name-Prefix.pch

#define TRIM(string) [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]

Шаг 2: наслаждайтесь написанием меньшего количества кода, когда хотите обрезать строку

NSLog(@"Output: %@ %@", TRIM(@"Hello        "), TRIM(@"World      "));

Output: Hello World
6 голосов
/ 19 июля 2013

Это удалит только первые пробелы.

NSString *myString = @"   123   ";
NSLog(@"mystring %@, length %d",myString, myString.length);
NSRange range = [myString rangeOfString:@"^\\s*" options:NSRegularExpressionSearch];
myString = [myString stringByReplacingCharactersInRange:range withString:@""];
NSLog(@"mystring %@, length %d",myString, myString.length);

output

mystring    123   , length 9
mystring 123   , length 6
...