我需要在日志的末尾创建一个汇总表,其中包含一些在类中获得的值.该表需要以固定宽度格式打印.我已经有了这样做的代码,但我需要将字符串,双精度和整数限制为在代码中硬编码的固定宽度大小.
所以,假设我想打印一个固定宽度的表
    int,string,double,string
    int,string,double,string
    int,string,double,string
    int,string,double,string
    and the fixed widths are: 4, 5, 6, 6.
如果值超过此宽度,则需要切断最后一个字符.例如:
    124891, difference, 22.348, montreal
需要打印的字符串应该是:
    1248 diffe 22.348 montre
我想我需要在构造函数中做一些强制字符串不超过一定数量字符的东西.我可能会将双打和整数转换为字符串,因此我可以强制执行最大宽度要求.
我不知道哪个方法可以做到这一点,或者是否可以实例化一个字符串以表现出来.使用格式化程序只能使用固定格式来打印字符串,但它实际上并不会切断超过最大长度的字符.
我有一个字符串,说:
String s = "0123456789";
我想用格式化程序填充它.我可以这两种方式:
String.format("[%1$15s]", s); //returns [     0123456789]
要么
String.format("[%1$-15s]", s); // returns [0123456789     ]
如果我想截断我做的文字
String.format("[%1$.5s]", s);  // returns [01234]
如果我想从左边截断,我想我可以这样做:
String.format("[%1$-.5s]", s); // throws MissingFormatWidthException
但这失败了,所以我尝试了这个:
String.format("[%1$-0.5s]", s); // throws MissingFormatWidthException
以及:
String.format("[%1$.-5s]", s); // throws UnknownFormatConversionException
那么如何使用格式标志从左侧截断?