java 将markdown table 转成html 的table标签
时间: 2023-10-13 16:12:01 浏览: 166
基于Java的smartTable设计源码
可以使用开源的Java Markdown库 CommonMark,然后使用正则表达式将Markdown中的表格转换成HTML的table标签。
以下是一个示例代码:
```
import org.commonmark.node.*;
import org.commonmark.parser.Parser;
import org.commonmark.renderer.html.HtmlRenderer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MarkdownToHtml {
public static void main(String[] args) {
String markdown = "| Header 1 | Header 2 |\n| --- | --- |\n| Cell 1 | Cell 2 |";
String html = markdownToHtml(markdown);
System.out.println(html);
}
public static String markdownToHtml(String markdown) {
Parser parser = Parser.builder().build();
Node document = parser.parse(markdown);
HtmlRenderer renderer = HtmlRenderer.builder().build();
String html = renderer.render(document);
// Convert Markdown table to HTML table
Pattern pattern = Pattern.compile("<p>\\|(.*)\\|</p>");
Matcher matcher = pattern.matcher(html);
while (matcher.find()) {
String markdownTable = matcher.group(1);
String[] rows = markdownTable.split("\\|\\|");
StringBuilder htmlTable = new StringBuilder("<table>");
for (String row : rows) {
String[] cells = row.split("\\|");
htmlTable.append("<tr>");
for (String cell : cells) {
htmlTable.append("<td>").append(cell.trim()).append("</td>");
}
htmlTable.append("</tr>");
}
htmlTable.append("</table>");
html = html.replace(matcher.group(), htmlTable.toString());
}
return html;
}
}
```
输入的Markdown字符串为:
```
| Header 1 | Header 2 |
| --- | --- |
| Cell 1 | Cell 2 |
```
输出的HTML字符串为:
```
<table>
<tr>
<td>Header 1</td>
<td>Header 2</td>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>
```
阅读全文