生成填充有空格的固定长度字符串

2022-08-31 09:03:16

我需要生成固定长度的字符串来生成基于字符位置的文件。缺少的字符必须用空格字符填充。

例如,字段 CITY 的固定长度为 15 个字符。对于输入“芝加哥”和“里约热内卢”,输出为

"        Chicago"
" Rio de Janeiro"
.

答案 1

从Java 1.5开始,我们可以使用java.lang.String.format(String,Object...)的方法,并使用printf like format。

格式字符串完成作业。where 指示参数索引,指示参数为字符串并表示字符串的最小宽度。把它们放在一起: ."%1$15s"1$s15"%1$15s"

对于一般方法,我们有:

public static String fixedLengthString(String string, int length) {
    return String.format("%1$"+length+ "s", string);
}

也许有人可以建议另一种格式字符串来用特定字符填充空白?


答案 2

用空格利用 的填充,并用所需的字符替换它们。String.format

String toPad = "Apple";
String padded = String.format("%8s", toPad).replace(' ', '0');
System.out.println(padded);

指纹。000Apple


更新更高性能的版本(因为它不依赖于 ),对空格没有问题(thx到Rafael Borja的提示)。String.format

int width = 10;
char fill = '0';

String toPad = "New York";
String padded = new String(new char[width - toPad.length()]).replace('\0', fill) + toPad;
System.out.println(padded);

指纹。00New York

但是需要添加检查以防止尝试创建具有负长度的 char 数组。