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

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


当前回答

使用类DecimalFormat,如下所示:

NumberFormat formatter = new DecimalFormat("0000"); //i use 4 Zero but you can also another number
System.out.println("OUTPUT : "+formatter.format(811)); 

输出:0000811

其他回答

int x = 1;
System.out.format("%05d",x);

如果您想将格式化的文本直接打印到屏幕上。

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

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);

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

你可以用谷歌番石榴:

Maven:

<dependency>
     <artifactId>guava</artifactId>
     <groupId>com.google.guava</groupId>
     <version>14.0.1</version>
</dependency>

示例代码:

String paddedString1 = Strings.padStart("7", 3, '0'); //"007"
String paddedString2 = Strings.padStart("2020", 3, '0'); //"2020"

注意:

Guava是一个非常有用的库,它还提供了许多与集合、缓存、函数习语、并发、字符串、原语、范围、IO、哈希、EventBus等相关的特性

裁判:GuavaExplained

使用这个简单的扩展函数

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

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

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

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

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