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

Манипуляция строк в Objective-C

Откажитесь от того, как извлекать и записывать переменные в Objective-C, теперь пришло время узнать, как сделать с ними что-то более полезное! Прямо сейчас, я в первую очередь пытаюсь понять, как работает строковая манипуляция. В частности, я ищу следующие функции:

  • конкатенация
  • Поиск длины строки (особенно многобайтных /UTF -8 строк, я много работаю с восточноазиатскими языками)
  • Вытягивание только части строки (например, "foobar" из "abcfoobarxyz" )
  • Поиск в строке (см. пример выше)
  • Изменчивый случай (верхний, нижний, заголовок, если это просто сделать)
  • Строки Exploding/Imploding (например, создание и получение информации из списков, разделенных запятыми)
  • Найти/заменить внутри строк
  • Любые другие полезные функции строки, которые могут быть доступны
4b9b3361

Ответ 1

Примеры: Конкатенация:

- (NSString*) concatenateString:(NSString*)stringA withString:(NSString*)stringB
{  
    NSString *finalString = [NSString stringWithFormat:@"%@%@", stringA,
                                                       stringB];
    return finalString;
}
// The advantage of this method is that it is simple to put text between the
// two strings (e.g. Put a "-" replace %@%@ by %@ - %@ and that will put a
// dash between stringA and stringB

Длина строки:

- (int) stringLength:(NSString*)string
{
    return [string length];
    //Not sure for east-asian languages, but works fine usually
}

Удалить текст из строки:

- (NSString*)remove:(NSString*)textToRemove fromString:(NSString*)input
{
   return [input stringByReplacingOccurrencesOfString:textToRemove
                                           withString:@""];
}

Верхний регистр/Нижний регистр/Секция:

- (NSString*)uppercase:(NSString*)stringToUppercase
{
   return [stringToUppercase uppercaseString];
}

- (NSString*)lowercase:(NSString*)stringToLowercase
{
   return [stringToLowercase lowercaseString];
}

- (NSString*)titlecase:(NSString*)stringToTitleCase
{
   return [stringToTitleCase capitalizedString];
}

Найти/Заменить

- (NSString*)findInString:(NSString*)string
        replaceWithString:(NSString*)stringToReplaceWith
{
   return [input stringByReplacingOccurrencesOfString:string
                                           withString:stringToReplaceWith];
}

Надеюсь, это поможет!

PS: Не забудьте проверить документацию, а Google - ваш друг. Удачи.

Ответ 3

В Xcode нажмите CMD-SHIFT-D и найдите NSString.h, NSMutableString и/или NSScanner

Откройте эти файлы и посмотрите все, что вы можете сделать с помощью NSStrings. Это должно сказать вам, какие функции существуют.

Кстати, это должно стать для вас второй натурой, так как вы будете использовать это для выяснения функций и/или делегатов.

Ответ 4

Вот вам подпрограмма "заголовок дела":

- (NSString *) stringToTitleCase: (NSString *) inString
{
    NSString *firstLetter = [inString substringWithRange: NSMakeRange(0, 1)];
    NSString *theRest = [inString substringWithRange: NSMakeRange(1, [inString length]-1)];

    return [NSString stringWithFormat: @"%@%@", [firstLetter uppercaseString], theRest];
}

Ответ 6

- (NSString *) stringToTitleCase: (NSString *) inString
{
    NSString *firstLetter = [inString substringWithRange: NSMakeRange(0, 1)];
    NSString *theRest = [inString substringWithRange: NSMakeRange(1, [inString length]-1)];

    return [NSString stringWithFormat: @"%@%@", [firstLetter uppercaseString], theRest];
}