Java 读取ArrayList的一部分n次行?
如果您有一个存储在String ArrayList中的HTML页面,并且您想读取某些类类型的整个Java 读取ArrayList的一部分n次行?,java,string,arraylist,Java,String,Arraylist,如果您有一个存储在String ArrayList中的HTML页面,并且您想读取某些类类型的整个标记,那么如何读取下一行以使其到达div标记的末尾 for (String l : line) { if (l.contains("<div class=\"somne_class\">"){ //read the next n strings in ArrayList until </div> tag is reached } for(字符串l:行){
标记,那么如何读取下一行以使其到达div标记的末尾
for (String l : line) {
if (l.contains("<div class=\"somne_class\">"){
//read the next n strings in ArrayList until </div> tag is reached
}
for(字符串l:行){
如果(l.包含(“”){
//读取ArrayList中接下来的n个字符串,直到到达标记
}
通常,将HTML文件存储为原始字符串列表是个坏主意。为什么要以这种方式存储它
假设您有类似于Hei!
的字符串。在这里,您在一行中有多个嵌套的HTML标记,因此您不容易获得结束标记
考虑使用HTML解析器,然后您可以按类型或属性获得所需的标记。Java中实现了大量HTML解析器。其中最流行的是jsoup。通常,将HTML文件存储为原始字符串列表是个坏主意。为什么要以这种方式存储它 假设您有类似于
Hei!
的字符串。在这里,您在一行中有多个嵌套的HTML标记,因此您不容易获得结束标记
考虑使用HTML解析器,然后您可以按类型或属性获得所需的标记。Java中实现了大量HTML解析器。其中最流行的是jsoup。我同意Vladimir的观点,您可能正在寻找HTML解析器 要回答帖子中的确切问题:只需查找下一个
标记,您可以使用for循环,而不是foreach循环
for(int i=0;i
请注意,这个可能不是与开始标记相匹配的结束标记,即使您假定每个标记位于不同的行中。我同意Vladimir的观点,您可能正在寻找一个HTML解析器 要回答帖子中的确切问题:只需查找下一个
标记,您可以使用for循环,而不是foreach循环
for(int i=0;i
请注意,此可能不是与开始标记匹配的结束标记,即使您假定每个标记位于不同的行中。我建议您使用
它很适合解析一个正在编写的html文件
然而,在这里挖掘到的是一个利用所有元素的例子
带标签的div:
你可以做更多的阅读我建议你使用
它很适合解析一个正在编写的html文件
然而,在这里挖掘到的是一个利用所有元素的例子
带标签的div:
你可以做更多的阅读我制作了它,这样它可以下载整个html页面并存储在ArrayList中,并使用函数提取不同的标签、段落等,我不希望它每天都连接到internettime@rimwydas44是什么阻止了您将整个页面存储在一个字符串中并在以后解析/重用它?@Pshemo I you将大字符串存储为一个字符串是愚蠢的吗?我总是在arraysDefine large中存储它们,为什么你认为它是愚蠢的?它将占用相似数量的空间作为其拆分部分的总和。唯一愚蠢的事情是人们可以使用
+
来连接循环中的多个部分,而不是StringBuilder#append
。我做的因此,它可以下载整个html页面并将其存储在ArrayList中,并使用函数提取不同的标记、段落等,我不希望它每天都连接到internettime@rimwydas44是什么阻止了您将整个页面存储在一个字符串中并在以后解析/重用它?@Pshemo我认为将大字符串存储为o是愚蠢的ne?我总是把它们存储在arraysDefine large中,为什么你认为它会很愚蠢?它将占用与其拆分部分之和相似的空间量。唯一愚蠢的事情是使用+
将循环中的许多部分连接起来,而不是StringBuilder#append
。
Document htmlFile = null;
// Read the html file
try {
htmlFile = Jsoup.parse(new File("path"),"UTF-8");//path,encoding
} catch (IOException e) {
e.printStackTrace();
}
Elements images = htmlFile.getElementsByTag("div");