使用Java

时间:2017-07-02 14:47:53

标签: java html string stringbuilder

我有一个包含HTML表的StringBuilder。我想知道,如果我可以使用某种库或任何东西在控制台中打印此表。 例如:

StringBuilder string = "<table>
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
</table>"

我想在控制台中以表格格式打印上面的字符串,这样我就不需要指定任何表格信息,如列标题或任何其他信息。

1 个答案:

答案 0 :(得分:0)

@jhutan尝试这个来生成您正在寻找的输出。

public static void main(String[] args) throws IOException {
    String html = "https://www.w3schools.com/html/html_tables.asp";
    Document doc = Jsoup.connect(html).get();
    Elements tableElements = doc.select("table");
    Elements tableHeaderEles = tableElements.select("th");
    System.out.println("headers");
    System.out.println("tableHeaderEles.size()" + tableHeaderEles.size());
    StringBuilder th = new StringBuilder();
    for (int i = 0; i < tableHeaderEles.size(); i++) {

        th.append(tableHeaderEles.get(i).text());
        th.append(" ");
    }
    System.out.println(th);

    Elements tableRowElements = tableElements.select(":not(thead) tr");
    for (int i = 0; i < tableRowElements.size(); i++) {
        Element row = tableRowElements.get(i);
        Elements rowItems = row.select("td");
        StringBuilder a = new StringBuilder();
        for (int j = 0; j < rowItems.size(); j++) {
            a.append(rowItems.get(j).text());
        }
        System.out.println(" " + a);
        //  System.out.println();
    }
}