2012-04-27 3 views
6

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

Если у меня есть строки вроде следующего:

«привет-там-это-это-тест & функции = привет-там»

Как удалить «& функцию» и все что происходит после этого?

Любая помощь была бы принята с благодарностью. Заранее спасибо!

EDIT: Если необходимо использовать REGEX, может ли кто-нибудь показать мне, как его использовать? Я знаю, что это 10.7, но я в порядке с этим. Еще лучше, пример обрезки строк или использование NSScanner?

Еще раз спасибо.

EDIT: Решение, размещенное ниже, является правильным, но привело к аварии для меня. Вот как я решил проблему:

NSString *newString = [[oldString componentsSeparatedByString: @"&feature="] objectAtIndex:0]; 
+0

Хотя технически решение, это решение делает больше работы, чем это необходимо (а именно, создает массив). Вы должны вернуться к решению rdelmar и исследовать, что вы делали, что вызвало его сбой, потому что вы, вероятно, все еще это делаете, и это вызовет другие проблемы. –

+0

спасибо большое за вашу помощь, но поверьте мне, я хорошо посмотрел, и я только что создал строку, заполнил ее URL-адресом, конвертировал его, обрезал, а затем использовал это решение. Я изо всех сил пытаюсь понять, почему он падает. – Cristian

+1

Как я уже сказал, вы должны задать вопрос об этом. Вы не можете научиться чему-либо полезному, бегая от каждой аварии, с которой вы сталкиваетесь; когда вы попадаете в крушение, вам следует заняться этим и научиться тому, что вы найдете. –

ответ

20

Это может быть сделано без Regex, как это:

NSString *string = @"hi-there-this-is-a-test&feature=hi-there"; 
    NSRange range = [string rangeOfString:@"&feature"]; 
    NSString *shortString = [string substringToIndex:range.location]; 
+0

Это приводит к сбою:/ – Cristian

+0

Это не когда я запускаю его. Получаете сообщение об ошибке – rdelmar

+0

@Cristian: Тогда вы делаете что-то еще неправильно. Это правильное решение. Вы должны написать отдельный вопрос об аварии. –

1

Посмотрите шаблон соответствия, ака регулярные выражения.

О, ничего себе, TIL нет встроенного способа делать регулярные выражения в Objective-C Cocoa? согласно Regular expressions in an Objective-C Cocoa application

Во всяком случае, в этом вопросе упоминаются библиотеки.

+0

нет встроенного способа? например 'stringByReplacingOccurrencesOfString(), но удалить все после? – Cristian

+0

Ну, вы можете создать код вокруг своей собственной функции, которая выполняет встроенный вызов, чтобы получить позицию согласованной строки, а затем обрезать строку в этой точке. И если у вас достаточно простая среда, тогда все будет хорошо. Но как только ваш проект будет расти, тогда вы будете вырезать n-вставляете этот общий код ... почему бы не использовать надежную библиотеку? – MarkHu

+0

Это небольшой проект, и этот код будет включен в функцию цикла, и мне нужно избавиться только от одного конкретного случая, которое удаляет «& feature» и все после этого, это не изменится. Если бы вы могли представить пример, чтобы найти это, а затем обрезать, я был бы очень благодарен! – Cristian

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