在点之前删除字符

时间:2015-03-19 13:40:51

标签: ios objective-c

我正在解析html,现在我得到了一个N​​SString对象,输出如下:

 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);

    }

我想要的是,在点之前删除字符。所以我可以进一步连接它来纠正网址。我怎么能用NSString做到这一点?是否有任何方法可以在特殊符号之前检查字符?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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"这样的更复杂的路径,这显然会起作用,在这种情况下,输出将与上面的路径相同