неділю, 16 лютого 2014 р.

NSString - работа со строкой

Класс 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);

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments