2015-03-19 3 views
-1

Im разборе HTML и теперь я получил объект NSString, что выход так:Удалить символы перед точкой

imageName is 4tmp.jpg 
imageName is 5tmp.jpg 
imageName is 6tmp.jpg 
imageName is 7tmp.jpg 
imageName is 8tmp.jpg 
imageName is 9tmp.jpg 

И так далее.

Мой код выглядит следующим образом:

TFHpple *dataParseer = [TFHpple hppleWithHTMLData:data]; 

    // 3 
    NSString *dataXpathQueryString = @"//head/title"; 
    NSArray *dataNodes = [dataParseer searchWithXPathQuery:dataXpathQueryString]; 
    TFHppleElement *element = dataNodes[0]; 

    if ([element.text hasPrefix:@"Index of"]) { 

     dataXpathQueryString = @"//tr/td/a"; 
     dataNodes = [dataParseer searchWithXPathQuery:dataXpathQueryString]; 

     for (TFHppleElement *element in dataNodes){ 

      NSString *imageName = [element objectForKey:@"href"]; 



     NSLog(@"imageName is %@", imageName); 

    } 

Что я хочу, удалить символы перед точкой. Поэтому я могу конкатенировать его, чтобы исправить URL. Как я мог это сделать с NSString? Есть ли какой-либо метод, который может проверять символы перед специальным символом?

+1

вы искали ли метод и попробовал? – Wain

+0

Его не закончили. Я просто получил результат с строками, которые нужно было разрезать. Например, 9tmp.jpg должно быть .jpg. Легко. –

ответ

2

Я не совсем уверен, что именно вы хотите получить, но есть несколько способов получить значения из строки.

Если вы работаете с структурами путей, вы можете сделать что-то подобное.

NSString *path = @"4tmp.jpg"; 

NSLog(@"1- %@",path.lastPathComponent); 
NSLog(@"2- %@",[path.lastPathComponent stringByDeletingPathExtension]); 
NSLog(@"3- %@",path.pathExtension); 

Какой будет выводить что-то вроде

1- 4tmp.jpg 
2- 4tmp 
3- jpg 

Это будет работать, очевидно, для более сложных путей, как "something/4tmp.jpg" в тех случаях, результат будет таким же, как один выше

+0

Это действительно полезно, на самом деле, я не знал, что такой метод существует. Спасибо, Бенджамин! –

+1

Нет смысла использовать 'lastPathComponent', когда' path' уже является «последним компонентом пути». – rmaddy

+0

В этом конкретном случае нет необходимости использовать его, но, как я объяснил позже, если вы работаете с более сложными путями, вывод будет таким же, как и тот, который показан на простом примере, и поскольку OP работает с href, возможны более сложные пути –

2
NSArray* stringComponents = [imageName componentsSeparatedByString:@"."]; 
imageName = [stringComponents objectAtIndex:1]; 
+0

Мне нравится ваша идея, но крушение приложения. Похоже, что он не может создать массив с числом элементов больше 0 (он не может достичь объекта по индексу 1). –

+0

не могли бы вы рассказать мне [элемент objectForKey: @ "href"] имеют точное значение и точный класс NSString? Попробуйте NSLog (@ "% @% @", [element objectForKey: @ "href"], [[element objectForKey: @ "href"] class]); и что является результатом этого? – vichevstefan

+0

Здесь мы идем - 2tmp.jpg __NSCFString –

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