Fix: ASCII Builder

This commit is contained in:
rubenpirreram
2026-04-25 18:41:14 +02:00
parent d69a806b3d
commit e1386287b2
2 changed files with 39 additions and 6 deletions
@@ -19,23 +19,25 @@ public class AsciiTable {
public String build() {
var sb = new StringBuilder();
sb.append(hline(s.tl(), s.mt(), s.tr())).append('\n');
int maxWidth = rows.stream().mapToInt(x->x.stream().mapToInt(y->y.length()).max().getAsInt()).max().getAsInt()+1;
sb.append(hline(s.tl(), s.mt(), s.tr(),maxWidth)).append('\n');
for (int i = 0; i < rows.size(); i++) {
sb.append(s.v());
for (String cell : rows.get(i))
sb.append(rpad(" " + cell, colWidth)).append(s.v());
sb.append(rpad(" " + cell, maxWidth)).append(s.v());
sb.append('\n');
if (separators.contains(i) && i < rows.size() - 1)
sb.append(hline(s.sl(), s.sx(), s.sr())).append('\n');
sb.append(hline(s.sl(), s.sx(), s.sr(),maxWidth)).append('\n');
}
sb.append(hline(s.bl(), s.mb(), s.br()));
sb.append(hline(s.bl(), s.mb(), s.br(), maxWidth));
return sb.toString();
}
private String hline(String l, String m, String r) {
private String hline(String l, String m, String r,int maxWidth) {
var sb = new StringBuilder(l);
for (int i = 0; i < cols; i++) {
sb.append(s.h().repeat(colWidth));
sb.append(s.h().repeat(maxWidth));
if (i < cols - 1) sb.append(m);
}
return sb.append(r).toString();