令IDEA控制台打印输出的文本对齐 以及 实现这个功能时个人的体会
String.format处理中文对齐问题_Super 米的博客-CSDN博客
在控制台打印输出时,抬头和下面toString循环输出的字符串str之间的对齐可以靠/t
而str之间 如果是全英文字符串 那么可以使用format指定最小长度进行对齐
但是如果str中存在中文 由于format不认识中文所以会进行忽略 这就造成了字符串之间的差异 最后就导致format达不到想要的效果
此时直观表现就是导致后面跟着的其他数据无法对齐
要解决这个办法就需要使用工具类,对于存在中文的字符串进行处理
原理就是 既然format会忽略中文 那么我就让format格式中的数字根据字符串中的中文字符数减掉相应数量
工具类下的代码:
实际调用:
效果:
这里行与行之间依然不够整齐是因为中文的宽度和空格、英文、数字不相同 因此虽然format动态调整了补足的空格数量 但中文造成的影响还是无法完全消除,除非更换显示的字体——等线字体
而抬头和下面内容的对齐 就得靠\t和空格一个个去调整了 或者再写一个工具类 自动计算并输出空格 可以使用stringBuilder 可变字符串