Java JSoup:提取文本并将其存储在多个变量中

Java JSoup:提取文本并将其存储在多个变量中,java,android,html,jsoup,Java,Android,Html,Jsoup,我有以下情况: 我想提取“span”标记之间的所有文本 我希望它像这样存储: A = 1,5,9,13 B = 2,6,10,14 C = 3,7,11,15 D = 4,8,12,16 请给我一些建议如何做到这一点。谢谢,节日快乐 编辑--------------------------------- 我有一个想法: if (exa != null) { for (int i = 0; i < exa.size(); i++) { A[i] = exa.get(0).text(); B

我有以下情况:

我想提取“span”标记之间的所有文本

我希望它像这样存储:

A = 1,5,9,13
B = 2,6,10,14
C = 3,7,11,15
D = 4,8,12,16
请给我一些建议如何做到这一点。谢谢,节日快乐

编辑---------------------------------

我有一个想法:

if (exa != null) {
for (int i = 0; i < exa.size(); i++) {
A[i] = exa.get(0).text();
B[i] = exa.get(1).text();
C[i] = exa.get(2).text();
D[i] = exa.get(3).text();
      }
}
它重复前4个跨距

我怎样才能至少得到:

A = 1,2,3,4
B = 5,6,7,8
C = 9,10,11,12
D = 13,14,15,16
使用字符串

    public static void main(String... args) throws IOException {

        try {
            String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
            String A = "", B = "", C = "", D = "";

            Document page = Jsoup.parse(text, "UTF-8");

            Elements uls = page.select(".examplediv ul");

            for(Element ul : uls) {
                Elements spans = ul.select("span");
                A += spans.get(0).text() + ",";
                B += spans.get(1).text() + ",";
                C += spans.get(2).text() + ",";
                D += spans.get(3).text() + ",";
            }

            A = A.substring(0, A.length() - 1);
            B = B.substring(0, B.length() - 1);
            C = C.substring(0, C.length() - 1);
            D = D.substring(0, D.length() - 1);

            System.out.println(A);
            System.out.println(B);
            System.out.println(C);
            System.out.println(D);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
publicstaticvoidmain(String…args)抛出IOException{
试一试{
String text=“
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
    • 9
    • 10
    • 11
    • 12
  • 使用StringBuilder

        public static void main(String... args) throws IOException {
    
            try {
                String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
                StringBuilder A = new StringBuilder(), B = new StringBuilder(), C = new StringBuilder(), D = new StringBuilder();
    
                Document page = Jsoup.parse(text, "UTF-8");
    
                Elements uls = page.select(".examplediv ul");
    
                for(Element ul : uls) {
                    Elements spans = ul.select("span");
                    A.append(spans.get(0).text() + ",");
                    B.append(spans.get(1).text() + ",");
                    C.append(spans.get(2).text() + ",");
                    D.append(spans.get(3).text() + ",");
                }
    
                A.deleteCharAt(A.length() - 1);
                B.deleteCharAt(B.length() - 1);
                C.deleteCharAt(C.length() - 1);
                D.deleteCharAt(D.length() - 1);
    
                System.out.println(A);
                System.out.println(B);
                System.out.println(C);
                System.out.println(D);
    
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    
    publicstaticvoidmain(String…args)抛出IOException{
    试一试{
    String text=“
    • 1
    • 2
    • 3
    • 4
  • 5
  • 6
  • 7
  • 8
    • 9
    • 10
    • 11
    • 12
  • 编辑

    这种行为的原因是因为您使用了=而不是+=所以您覆盖了以前的值。 也许这就是你想要的

    public static void main(String... args) throws IOException {
    
        try {
            String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
            ArrayList<String> A = new ArrayList<String>(), B = new ArrayList<String>(), C = new ArrayList<String>(), D = new ArrayList<String>();
    
            Document page = Jsoup.parse(text, "UTF-8");
    
            Elements uls = page.select(".examplediv ul");
    
            for(Element ul : uls) {
                Elements lis = ul.select("span");
                A.add(lis.get(0).text());
                B.add(lis.get(1).text());
                C.add(lis.get(2).text());
                D.add(lis.get(3).text());
            }
    
            for(String str : A) {
                System.out.print(str + " ");
            } System.out.println("");
    
            for(String str : B) {
                System.out.print(str + " ");
            } System.out.println("");
    
            for(String str : C) {
                System.out.print(str + " ");
            } System.out.println("");
    
            for(String str : D) {
                System.out.print(str + " ");
            } System.out.println("");
        } catch(Exception e) {
            e.printStackTrace();
        }
        }
    
    publicstaticvoidmain(String…args)抛出IOException{
    试一试{
    String text=“
    • 1
    • 2
    • 3
    • 4
  • 5
  • 6
  • 7
  • 8
    • 9
    • 10
    • 11
    • 12
  • 嗯?也许你可以详细说明一下?我提供的代码与你描述的完全一样。那么,问题出在哪里呢?检查新的部分。你没有说你想要数组。检查我的更新。等等。你所做的毫无意义。exa大小是您的跨距数。你所做的是完全错误的。
    A = 1,2,3,4
    B = 5,6,7,8
    C = 9,10,11,12
    D = 13,14,15,16
    
        public static void main(String... args) throws IOException {
    
            try {
                String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
                String A = "", B = "", C = "", D = "";
    
                Document page = Jsoup.parse(text, "UTF-8");
    
                Elements uls = page.select(".examplediv ul");
    
                for(Element ul : uls) {
                    Elements spans = ul.select("span");
                    A += spans.get(0).text() + ",";
                    B += spans.get(1).text() + ",";
                    C += spans.get(2).text() + ",";
                    D += spans.get(3).text() + ",";
                }
    
                A = A.substring(0, A.length() - 1);
                B = B.substring(0, B.length() - 1);
                C = C.substring(0, C.length() - 1);
                D = D.substring(0, D.length() - 1);
    
                System.out.println(A);
                System.out.println(B);
                System.out.println(C);
                System.out.println(D);
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String... args) throws IOException {
    
            try {
                String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
                StringBuilder A = new StringBuilder(), B = new StringBuilder(), C = new StringBuilder(), D = new StringBuilder();
    
                Document page = Jsoup.parse(text, "UTF-8");
    
                Elements uls = page.select(".examplediv ul");
    
                for(Element ul : uls) {
                    Elements spans = ul.select("span");
                    A.append(spans.get(0).text() + ",");
                    B.append(spans.get(1).text() + ",");
                    C.append(spans.get(2).text() + ",");
                    D.append(spans.get(3).text() + ",");
                }
    
                A.deleteCharAt(A.length() - 1);
                B.deleteCharAt(B.length() - 1);
                C.deleteCharAt(C.length() - 1);
                D.deleteCharAt(D.length() - 1);
    
                System.out.println(A);
                System.out.println(B);
                System.out.println(C);
                System.out.println(D);
    
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    
    public static void main(String... args) throws IOException {
    
        try {
            String text = "<div class=\"examplediv\"> <ul> <li><span>1</span></li> <li><span>2</span></li> <li><span>3</span></li> <li><span>4</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>5</span></li> <li><span>6</span></li> <li><span>7</span></li> <li><span>8</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>9</span></li> <li><span>10</span></li> <li><span>11</span></li> <li><span>12</span></li> </ul> </div> <div class=\"examplediv\"> <ul> <li><span>13</span></li> <li><span>14</span></li> <li><span>15</span></li> <li><span>16</span></li> </ul> </div>";
            ArrayList<String> A = new ArrayList<String>(), B = new ArrayList<String>(), C = new ArrayList<String>(), D = new ArrayList<String>();
    
            Document page = Jsoup.parse(text, "UTF-8");
    
            Elements uls = page.select(".examplediv ul");
    
            for(Element ul : uls) {
                Elements lis = ul.select("span");
                A.add(lis.get(0).text());
                B.add(lis.get(1).text());
                C.add(lis.get(2).text());
                D.add(lis.get(3).text());
            }
    
            for(String str : A) {
                System.out.print(str + " ");
            } System.out.println("");
    
            for(String str : B) {
                System.out.print(str + " ");
            } System.out.println("");
    
            for(String str : C) {
                System.out.print(str + " ");
            } System.out.println("");
    
            for(String str : D) {
                System.out.print(str + " ");
            } System.out.println("");
        } catch(Exception e) {
            e.printStackTrace();
        }
        }