Подтвердить что ты не робот

Удалите пробел из строки в Objective-C

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

4b9b3361

Ответ 1

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

NSString *foo = @" untrimmed string ";
NSString *trimmed = [foo stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

Ответ 2

Вы можете использовать метод stringByTrimmingCharactersInSet NSString с помощью whitespaceAndNewlineCharacterSet NSCharacterSet как таковой:

NSString *testString = @"  Eek! There are leading and trailing spaces  ";
NSString *trimmedString = [testString stringByTrimmingCharactersInSet:
                             [NSCharacterSet whitespaceAndNewlineCharacterSet]];

Ответ 3

Это приведет к удалению только ведущего пробела.

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);

вывод

mystring    123   , length 9
mystring 123   , length 6

Ответ 4

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

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

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

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

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

Output: Hello World