1. 程式人生 > >Java 自動生成markdown表格程式碼

Java 自動生成markdown表格程式碼

在寫部落格的時候CSND沒有表格按鈕,每次寫表格很麻煩,於是我寫了個程式碼來生成表格的markdown語句,使用的時候只要輸入行和列就行了。
程式碼:

package markdowntools;

import java.util.Scanner;
import clipboard.util.SysClipboardUtil;

public class MarkDownTableCode
{
    public static void main(String[] args)
    {
        Scanner scanner=new Scanner(System.in);
        System.out.println("############    markdown表格生成器    ############"
); System.out.print("輸入行數:"); int rows=scanner.nextInt(); System.out.print("輸入列數:"); int cols=scanner.nextInt(); System.out.println("############ 執行結果: ############"); String head=tableHead(cols); String style= tableStyle(cols); //打印表格內容:
String body=tableBody(cols, rows); // System.out.println("----------------------------------------"); System.out.println(head+style+body); //把生成的markdown程式碼寫入到系統剪貼簿中 SysClipboardUtil.setSysClipboardText(head+style+body); } /** * @param cols * @return
*/
public static String tableHead(int cols) { StringBuilder buf=new StringBuilder(); //打印表格頭 for(int j=1;j<=cols;j++) { // System.out.print("|標題"+j); buf.append("|標題"+j); } // System.out.println("|");//標題行結束 buf.append("|\n"); return buf.toString(); } /** * 生成預設格式的markdown表格對齊樣式。 * @param cols 表格的列數 * @return markdown表格對齊樣式語句字串。 */ public static String tableStyle(int cols) { StringBuilder buf=new StringBuilder(); //打印表格樣式使用預設 for(int j=1;j<=cols;j++) { // System.out.print("|-"); buf.append("|-"); } // System.out.println("|");//標題行結束 buf.append("|\n"); return buf.toString(); } /** * 生成表格體markdown語句。 * @param cols 表格的列數 * @param rows 表格的行數 * @return 帶編號的表格體markdown語句,表格體第一行編號1,第二行編號2. */ public static String tableBody(int cols, int rows) { StringBuilder buf=new StringBuilder(); for(int i=0;i<rows;i++) { for(int j=1;j<=cols+1;j++) { // System.out.print("|"); buf.append("|"); if(j==1) { // System.out.print(i+1); buf.append((i+1)); } } // System.out.println(); buf.append("\n"); } return buf.toString(); } }

現在來生成一個3行4列的表格:
自動生成markdown表格程式碼
剪貼簿中的程式碼(我這裡貼上過來了):

|標題1|標題2|標題3|標題4|
|-|-|-|-|
|1||||
|2||||
|3||||

效果:

標題1 標題2 標題3 標題4
1
2
3