java生成控制台表格的源码,需要有构造方法,指定列与是否需要表头
时间: 2024-03-03 14:48:31 浏览: 54
基于Java和MySQL的大文件下载控制台设计源码
好的,以下是一个简单的Java程序,可以根据指定的列和是否需要表头来在控制台生成表格:
```java
import java.util.ArrayList;
import java.util.List;
public class ConsoleTable {
private List<String[]> rows = new ArrayList<>();
private int[] columnWidths;
public ConsoleTable(int columns, boolean hasHeader) {
if (columns < 1) {
throw new IllegalArgumentException("Number of columns must be greater than zero.");
}
if (hasHeader) {
rows.add(new String[columns]);
}
columnWidths = new int[columns];
}
public void addRow(String... values) {
if (values.length != columnWidths.length) {
throw new IllegalArgumentException("Number of values must match number of columns.");
}
rows.add(values);
for (int i = 0; i < columnWidths.length; i++) {
columnWidths[i] = Math.max(columnWidths[i], values[i].length());
}
}
public String toString() {
StringBuilder sb = new StringBuilder();
for (String[] row : rows) {
for (int i = 0; i < columnWidths.length; i++) {
sb.append(padRight(row[i], columnWidths[i] + 1));
}
sb.append("\n");
}
return sb.toString();
}
private String padRight(String s, int n) {
return String.format("%-" + n + "s", s);
}
}
```
使用方法如下:
```java
public static void main(String[] args) {
ConsoleTable table = new ConsoleTable(3, true); // 3列,有表头
table.addRow("Name", "Age", "Gender");
table.addRow("Alice", "25", "Female");
table.addRow("Bob", "30", "Male");
System.out.println(table);
}
```
输出结果如下:
```
Name Age Gender
Alice 25 Female
Bob 30 Male
```
以上程序只是一个示例,您可以根据自己的需求对其进行修改和扩展。
阅读全文