你如何在java中转换为字符串时留下一个零填充int ?

我基本上是在寻找以前导零填充到9999的整数(例如1 = 0001)。


当前回答

试试这个:

import java.text.DecimalFormat; 

DecimalFormat df = new DecimalFormat("0000");

String c = df.format(9);   // Output: 0009

String a = df.format(99);  // Output: 0099

String b = df.format(999); // Output: 0999

其他回答

找到这个例子…将测试……

import java.text.DecimalFormat;
class TestingAndQualityAssuranceDepartment
{
    public static void main(String [] args)
    {
        int x=1;
        DecimalFormat df = new DecimalFormat("00");
        System.out.println(df.format(x));
    }
}

测试了这个和:

String.format("%05d",number);

对于我的目的,我认为这两个都可以。格式更好,更简洁。

使用java.lang.String.format(String,Object…)

String.format("%05d", yournumber);

对于长度为5的零填充。对于十六进制输出,将d替换为“%05x”中的x。

完整的格式化选项被记录为java.util.Formatter的一部分。

Kotlin的

fun Calendar.getFullDate(): String {
    val mYear = "${this.get(Calendar.YEAR)}-"
    val mMonth = if (this.get(Calendar.MONTH) + 1 < 10) {
        "0${this.get(Calendar.MONTH) + 1}-"
    } else {
        "${this.get(Calendar.MONTH)+ 1}-"
    }
    val mDate = if (this.get(Calendar.DAY_OF_MONTH)  < 10) {
        "0${this.get(Calendar.DAY_OF_MONTH)}"
    } else {
        "${this.get(Calendar.DAY_OF_MONTH)}"
    }
    return mYear + mMonth + mDate
}

并将其用作

val date: String = calendar.getFullDate()

使用这个简单的扩展函数

fun Int.padZero(): String {
    return if (this < 10) {
        "0$this"
    } else {
        this.toString()
    }
}

您需要使用Formatter,下面的代码使用NumberFormat

    int inputNo = 1;
    NumberFormat nf = NumberFormat.getInstance();
    nf.setMaximumIntegerDigits(4);
    nf.setMinimumIntegerDigits(4);
    nf.setGroupingUsed(false);

    System.out.println("Formatted Integer : " + nf.format(inputNo));

输出:0001