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

新手上路,请多包涵

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

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

“ 芝加哥”
“ 里约热内卢”

.

原文由 Rafael Borja 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

从 Java 1.5 开始,我们可以使用方法 java.lang.String.format(String, Object…) 并使用类似于格式的 printf。

格式字符串 "%1$15s" 完成工作。其中 1$ 表示参数索引, s 表示参数是一个字符串, 15 表示字符串的最小宽度。把它们放在一起: "%1$15s"

对于一般方法,我们有:

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

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

原文由 Rafael Borja 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

打印 000Apple


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

 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 数组。

原文由 mike 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题