Класс NSString предоставляет возможность работы с неизменяемой строкой, которая представлена в виде массива символов в кодировке Unicode. Такая строка может быть однажды создана, но не может быть изменена всё время своего существования. Представление строк в виде объектов даёт возможность использовать большое количество методов для обработки строк, а также позволяет использовать строки везде, где можно использовать объекты Objective C. Объекты NSString могут быть легко получены на основе строк языка С, и наоборот, на основе объекта NSString можно получить строку C, заканчивающуюся символом с кодом 0. Для эффективной работы с изменяемыми строками следует пользоваться объектами класса NSMutableString.
Основные методы класса:
Название | Описание |
uppercaseString | Возвращает строку, полученную из указанной путём перевода букв в верхний регистр |
lowercaseString | Возвращает строку, полученную из указанной путём перевода букв в нижний регистр |
capitalizedString | Возвращает строку, полученную из указанной путём перевода первых букв всех слов в верхний регистр |
isEqualToString | Проверяет равенство двух строк |
compare | Сравнивает две строки |
stringWithCString | Создаёт объект объект NSString на основе стандартной строки языка С |
rangeOfString | Возвращает диапазон символов первой указанной строки, в который входит вторая указанная строка |
componentsSeparatedByString | Возвращает объект NSArray, содержащий строки, полученные разделением указанной строки указанным строковым разделителем |
componentsJoinedByString | Возвращает строку, полученную объединением массива строк |
intValue | Пытается преобразовать строку в целое число и возвращает это число |
doubleValue | Пытается преобразовать строку в число с плавающей запятой и возвращает это число |
integerValue | Пытается преобразовать строку в объект NSInteger и возвращает этот объект |
UTF8String | Возвращает строку языка С, полученную из указанного объекта NSString |
Примеры использования:
Язык Objective C полностью поддерживает строки языка C. Вы можете в любой момент создать такую строку через указатель, а так же использовать средства языка С для обработки таких строк. Создать простую строку языка С можно так:char * cString = "Hello world";Каждая такая строка – это массив букв, который заканчивается символом с кодом 0. Вот ещё один способ создания строки языка С:
char cString[] = "Another string";Основной недостаток строк в языке С – неудобство работы с ними. Существует много функций для обработки таких строк, но многие из них не так удобны, как хотелось бы и они часто работают напрямую с указателями на символы строк. Это может потенциально привести к ошибкам в работе со строками, поэтому в языке Objective C был предложен новый класс для работы со строками. Класс NSString содержит большое количество удобных и мощных методов для решения многих задач, возникающих при работе со строками. Для того, чтобы воспользоваться в программе объектом строки вовсе необязательно писать сложный код. Можно воспользоваться вот таким способом:
@"A constant Objective C string object";Если вы хотите вывести объект NSString в консоль, можно воспользоваться форматированным выводом при помощи функции NSLog. В данном случае эта функция будет принимать 2 строки: первая – строка формата, вторая – строка параметра. В строке формата символы %@ будут заменены на строку параметра, после чего результирующая строка будет выведена в консоль.
NSLog (@"%@", @"This is a constant character string object");Строки, созданные таким образом, являются объектами NSConstantString, который наследует от класса NSString и для них легко можно вызвать различные методы. Например, можно получить длину строки при помощи метода length:
int len = [@"Hello big world!" length]; NSLog (@"Length = %i", len);Объект NSString позволяет управлять регистром букв в строке для этого есть несколько методов. Например, при помощи метода lowercaseString строку можно преобразовать в нижний регистр:
NSString *lowerStr = [@"SAMPLE STRING" lowercaseString]; NSLog(@"%@", lowerStr);Строки можно сравнивать между собой, используя метод isEqualToString, который возвращает значение типа BOOL:
NSString *str1 = @"Abcd"; NSString *str2 = @"efghh"; BOOL equal = [str1 isEqualToString:str2]; NSLog(@"Strings is equal? %@", equal? @"YES" : @"NO");Часто бывает нужно разделить строку на подстроки, используя какую-то разделяющую строку. Для этого достаточно вызвать метод componentsSeparatedByString, который возвращает массив полученных подстрок. Метод принимает всего один параметр, это и есть разделяющая строка:
NSString *str = @"One, Two, Three"; NSArray *arr = [str componentsSeparatedByString:@", "]; NSLog(@"%@", arr);
Немає коментарів:
Дописати коментар