Java aligned plain-text terminal table
Java
import java.util.ArrayList;
import java.util.List;
public final class TextTable {
public static String render(List<String[]> rows) {
int cols = rows.stream().mapToInt(r -> r.length).max().orElse(0);
int[] width = new int[cols];
for (String[] row : rows) {
for (int c = 0; c < row.length; c++) width[c] = Math.max(width[c], row[c].length());
}
StringBuilder sb = new StringBuilder();
for (String[] row : rows) {
for (int c = 0; c < row.length; c++) {
sb.append(row[c]).append(" ".repeat(Math.max(1, width[c] - row[c].length() + 2)));
}
sb.append('\n');
}
return sb.toString();
}
}