我正在解析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);
}
我想要的是,在点之前删除字符。所以我可以进一步连接它来纠正网址。我怎么能用NSString
做到这一点?是否有任何方法可以在特殊符号之前检查字符?
答案 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"
这样的更复杂的路径,这显然会起作用,在这种情况下,输出将与上面的路径相同