使用 Java 字符串格式格式化整数

新手上路,请多包涵

我想知道是否有可能使用 Java 中的 String.format 方法在零之前给出一个整数?

例如:

1 会变成 001

2 会变成 002

11 会变成 011

12 会变成 012

526 将保持为 526

…ETC

目前我已经尝试了以下代码:

 String imageName = "_%3d" + "_%s";

for( int i = 0; i < 1000; i++ ){
    System.out.println( String.format( imageName, i, "foo" ) );
}

不幸的是,这在数字前面有 3 个空格。是否可以在数字前面加上零?

原文由 My Head Hurts 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 676
2 个回答

在整数的格式说明符中使用 %03d0 表示如果小于三个(在这种情况下)数字,则该数字将被零填充。

有关其他修饰符,请参见 Formatter 文档。

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

String.format("%03d", 1)  // => "001"
//              │││   └── print the number one
//              ││└────── ... as a decimal integer
//              │└─────── ... minimum of 3 characters wide
//              └──────── ... pad with zeroes instead of spaces

有关详细信息,请参阅 java.util.Formatter

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

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