У меня есть пара строк. У некоторых есть пробел в начале, а некоторые нет. Я хочу проверить, начинается ли строка с пробела, и если это так удалить.
Удалите пробел из строки в Objective-C
Ответ 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