2016-09-23 3 views
1

Можно ли изменить текст в определенной части NSString? Например, я хочу использовать stringByReplacingOccurrencesOfString, но только в пределах определенной части строки. В этом примере я хочу только заменить # после #q= и до &lang=en-us. Как это:Заменить текст в пределах определенной части NSString

Начальная строка: https://google.com/search#q=hello#&lang=en-us

Что следует заменить: https://google.com/search#q=hello%23&lang=en-us

Что с использованием stringByReplacingOccurrencesOfString возвращается, если я скажу, чтобы заменить # «S с %23: https://google.com/search%23q=hello%23&lang=en-us

Спасибо за ваша помощь!

+0

Это Q & A communitiy, который работает, что дает бесплатный ответ. Вы можете вернуться к сообществу, выбирая правильный ответ, который решает вашу проблему и откладывает ответ, который ведется в правильном направлении. Это также улучшает ваши шансы получить ответ – PnotNP

ответ

3

Прямой ответ на ваш вопрос, да, вы можете использовать stringByReplacingOccurrencesOfString:withString:options:range: ; параметр range указывает часть строки, в которой должны выполняться замены.

Существуют другие методы поиска, предоставляемые NSString, которые могут помочь вам определить подходящее значение для range.

Сказанное выше, ваш подход, скорее всего, является «хрупким» - может легко ломаться, поскольку изменения входных данных - и, возможно, вам следует рассмотреть строку как то, что она есть, URL-адрес, и либо построить его с соответствующим экранированием в первое место; или проанализируйте его в своих частях, добавьте экранирование, а затем снова соберите. Существуют методы на NSURL и NSString, которые помогут вам в этом.

HTH

0

Похоже, вы хотите, чтобы существующий URL кодирования строки

NSString *input = @"https://google.com/search#q=hello%23&lang=en-us"; 
NSURL *url = @"https://google.com/search#q=hello%23&lang=en-us"; 
NSString *params = [url parameterString]; 
NSString *enc = [params stringByAddingPercentEscapesUsingEncoding: 
NSUTF8StringEncoding]; 
//append URLs host+path with enc 

Нет проверки ошибок не делается в коде выше, это дает только идея

+0

Спасибо за ваш ответ! Проблема с этим решением заключается в том, что с помощью этого выводится строка с символами hashtags и процентов, измененными на правильную кодировку UTF8, но она делает это для всей строки, а не только в части '# q ='. – Insleep

Смежные вопросы