如何将 3 位整数格式化为 4 位字符串? [复制]

Posted

技术标签:

【中文标题】如何将 3 位整数格式化为 4 位字符串? [复制]【英文标题】:How to format a 3-digit integer to a 4-digit string? [duplicate] 【发布时间】:2013-07-17 10:08:58 【问题描述】:

我想将 3 位数的 integer 格式化为 4 位数的 string 值。示例:

int a = 800;
String b = "0800";

当然,格式化将在String b 语句中完成。谢谢大家!

【问题讨论】:

看看docs.oracle.com/javase/tutorial/java/data/numberformat.html @arynaq 谢谢!这帮助很大! 【参考方案1】:

使用String#format:

String b = String.format("%04d", a);

其他格式请参考documentation

【讨论】:

废话,差不多 24 小时,我完全忘了接受这个答案!我的错!【参考方案2】:

如果您只想拥有它一次,请使用String.format("%04d", number) - 如果您更频繁地需要它并且想要集中模式(例如配置文件),请参阅下面的解决方案。

顺便说一句。有一个关于数字格式的 Oracle tutorial。

简而言之:

import java.text.*;

public class Demo 

   static public void main(String[] args) 
      int value = 123;
      String pattern="0000";
      DecimalFormat myFormatter = new DecimalFormat(pattern);
      String output = myFormatter.format(value);
      System.out.println(output); // 0123
   

希望对您有所帮助。 *约斯特

【讨论】:

这实际上可能会好一些。【参考方案3】:
String b = "0" + a;

会不会更容易些?

【讨论】:

@SandiipPatil 这不会编译。 能更简单点吗?不。但也许更健壮/灵活。 @Thilo:同意。但这个问题专门要求 3 位整数。当事情可以很简单时,为什么要让事情变得复杂?现在,我也同意您的解决方案远非复杂:-) 我认为我们的两种解决方案都可能存在负数问题。让我们把它作为练习留给读者。 @SandiipPatil Euh..."0" + a 工作得很好...【参考方案4】:

请尝试

String.format("%04d", b);

【讨论】:

除了b 而不是a,这个答案与Thilo 的答案有何不同? @MarounMaroun:好吧,看看时间戳。很可能只是一个竞争条件。【参考方案5】:

您可以随时使用Jodd Printf。在你的情况下:

Printf.str("%04d", 800);

会做这项工作。此类是在 Sun 添加 String.format 之前创建的,并且具有更多格式选项。

【讨论】:

以上是关于如何将 3 位整数格式化为 4 位字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 将数字格式化为字符串 - 使用小数和千位分隔符

thinkPHP 如何在整形后面加两位小数

将4位整数转换为布尔列表

将 y 轴标签格式化为具有许多零的更高千位科学记数法?

C# 将浮点格式格式化为带有分隔符和填充 0 的字符串

将数字格式化为字符串-带小数和千位分隔符