Fix: ASCII Builder
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user