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

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

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

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

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

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

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

 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 

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

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

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

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

 NSLog(@"Output: %@ %@", TRIM(@"Hello "), TRIM(@"World ")); Output: Hello World 
  • Как запустить TestNG из командной строки
  • C ++ printf с std :: string?
  • Как преобразовать String в ArrayList?
  • C / C ++: оптимизация указателей на строковые константы
  • Как отрегулировать ведущее / завершающее пробелы стандартным образом?
  • Строка C ++ для enums
  • Эффективный способ сравнения строк версии в Java
  • Строковые литералы: куда они идут?
  • Когда использовать StringBuilder в Java
  • Получить версию java из командного файла
  • В C, почему я не могу назначить строку массиву символов после ее объявления?
  • Interesting Posts

    Когда использовать , файлы тегов, составные компоненты и / или настраиваемые компоненты?

    UTF-8 без спецификации

    Control.AddRange (…) медленный

    Сенсорная панель не реагирует, когда я держу клавишу на клавиатуре

    UIScrollView горизонтальный пейджинг, как вкладки Mobile Safari

    Как обновить PDF без создания нового PDF?

    Как вы создаете уменьшенное изображение из JPEG на Java?

    Google Cloud Messaging (GCM) с локальными группами устройств на Android дает HTTP-код ошибки 401

    Могу ли я установить папки для удаления Windows на другом диске?

    Использование ограниченной переменной с длиной `/ 2`

    Как запустить активность только один раз, когда приложение открывается в первый раз?

    Ошибка сегментации в реализации btree

    Использование mklink / h приводит к тому, что «Доступ запрещен».

    Windows 10: Отсутствует boot.wim?

    Не удается удаленный доступ к компьютеру, потому что «удаленному компьютеру требуется сетевая аутентификация»

    Давайте будем гением компьютера.