为了账号安全,请及时绑定邮箱和手机立即绑定

在Java中将前导零添加到数字中?

在Java中将前导零添加到数字中?

慕雪6442864 2019-06-24 15:41:00
在Java中将前导零添加到数字中?有更好的方法来获得这个结果吗?如果num的数字比数字多,那么这个函数就会失败,我觉得它应该在某个库中(比如Integer.toString(x,“%3d”)等等)。static String intToString(int num, int digits) {     StringBuffer s = new StringBuffer(digits);     int zeroes = digits - (int) (Math.log(num) / Math.log(10)) - 1;      for (int i = 0; i < zeroes; i++) {         s.append(0);     }     return s.append(num).toString();}
查看完整描述

3 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

因为Java1.5,您可以使用String.format方法。例如,要执行与示例相同的操作:

String format = String.format("%%0%dd", digits);String result = String.format(format, num);return result;

在这种情况下,您将使用数字指定的宽度创建格式字符串,然后将其直接应用于数字。此示例的格式转换如下:

%% --> %0  --> 0%d --> <value of digits>d  --> d

因此,如果数字等于5,则格式字符串将变为%05d它指定宽度为5的整数,打印前导零。


查看完整回答
反对 回复 2019-06-24
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

另一个选择是使用DecimalFormat若要格式化数字字符串,请执行以下操作。这里还有一种不用使用String.Format来完成这项工作的方法,如果您被困在1.5之前的世界中:

static String intToString(int num, int digits) {
    assert digits > 0 : "Invalid number of digits";

    // create variable length array of zeros
    char[] zeros = new char[digits];
    Arrays.fill(zeros, '0');
    // format number as String
    DecimalFormat df = new DecimalFormat(String.valueOf(zeros));

    return df.format(num);}


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 940 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信