【问题标题】:Print HTML table in console using Java使用 Java 在控制台中打印 HTML 表格
【发布时间】:2017-07-02 14:47:52
【问题描述】:

我有一个包含 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>"

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

【问题讨论】:

  • System.out.println(string.toString())你是说这个?
  • @atulquest93 你不需要 toString 和 println
  • 我想按行和列打印表格,就像我们在 HTML 页面中看到的那样。
  • @JhutanDebnath 您可以为此使用 Jsoup。

标签: java html string stringbuilder


【解决方案1】:

@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();
    }
}

【讨论】:

    猜你喜欢
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多