Java 读取ArrayList的一部分n次行?

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:行){

如果您有一个存储在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:行){
如果(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");