在Java中,可以使用字符串格式化和循環來打印表格。下面是一個簡單的示例:
public class TablePrinter {
public static void main(String[] args) {
String[][] data = {
{"Name", "Age", "Gender"},
{"John", "25", "Male"},
{"Alice", "30", "Female"},
{"Bob", "18", "Male"}
};
// 計算每列的最大寬度
int[] columnWidths = new int[data[0].length];
for (String[] row : data) {
for (int i = 0; i < row.length; i++) {
if (row[i].length() > columnWidths[i]) {
columnWidths[i] = row[i].length();
}
}
}
// 打印表頭
for (int i = 0; i < data[0].length; i++) {
System.out.format("%-" + columnWidths[i] + "s", data[0][i]);
System.out.print(" | ");
}
System.out.println();
// 打印分隔線
for (int i = 0; i < columnWidths.length; i++) {
for (int j = 0; j < columnWidths[i] + 3; j++) {
System.out.print("-");
}
}
System.out.println();
// 打印數據行
for (int i = 1; i < data.length; i++) {
for (int j = 0; j < data[i].length; j++) {
System.out.format("%-" + columnWidths[j] + "s", data[i][j]);
System.out.print(" | ");
}
System.out.println();
}
}
}
上述代碼首先定義了一個二維字符串數組data
,其中包含表格的數據。然后,通過循環計算每列的最大寬度,并存儲在columnWidths
數組中。接下來,使用循環打印表頭、分隔線和數據行。
輸出結果如下:
Name | Age | Gender
------|-----|-------
John | 25 | Male
Alice | 30 | Female
Bob | 18 | Male
通過調整數組data
中的數據,可以打印不同的表格。