java - 限制字符串中的字符数,并截断其余字符

标签 java string substring

我需要在日志末尾创建一个汇总表,其中包含一些值 在类中获得。表格需要以固定宽度打印 格式。我已经有代码可以做到这一点,但我需要限制字符串, 将 double 和整数转换为在代码中硬编码的固定宽度大小。

所以,假设我想打印一个固定宽度的表格

    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

我想我需要在构造函数中做一些事情来强制 字符串不超过一定数量的字符。我可能会 将 double 和整数转换为字符串,因此我可以强制执行最大宽度 要求。

我不知道这是用哪种方法,或者是否可以将字符串实例化为 举止得体。使用格式化程序仅有助于 用于打印字符串的固定格式,但实际上并没有 砍掉超过最大长度的字符。

最佳答案

您也可以使用 String.format("%3.3s", "abcdefgh")。第一个数字是最小长度(如果字符串较短,则将被填充),第二个数字是最大长度,如果较长,字符串将被截断。所以

System.out.printf("'%3.3s' '%3.3s'", "abcdefgh", "a");

会产生

'abc' '  a'

(显然,您可以删除引号)。

关于java - 限制字符串中的字符数,并截断其余字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8369708/

相关文章:

java - 如何使用 Java 8 流迭代 List<int[]>?

c# - 根据其中一个字段中的子字符串对对象列表进行分组

javascript - Javascript 子串是虚拟的吗?

java - Java中有可写的迭代器吗?

java - 我应该在何时何地使用 close() 方法来避免 ObjectInputStream 中的 IOException?

java - 如何使用 AnimationDrawable 和 animation-list 创建顺序动画

python - MongoDB 和 PyMongo - 如何在单个文档字段中连接字符串

python - 在阿拉伯语中查找两个子字符串之间的字符串

java - 为什么我的变量 'extra' 被修改,而我正在更改它的副本。(具体的,不是一般的查询)

java - Java 的 substring() 的时间复杂度