将1转换为01

Rog*_*ger 16 java

我有1到99之间的int.如何让它始终是一个两位数,即:01,04,21?

Ada*_*kin 35

大概你的意思是将数字存储在一个字符串中.

从JDK1.5开始,就有了String.format()方法,它可以让你完全按照自己的意愿行事:

String s = String.format("%02d", someNumber);
Run Code Online (Sandbox Code Playgroud)

String.format()的一个好处是,您可以使用它来构建更复杂的字符串,而无需使用大量连接,从而产生更清晰的代码.

String logMessage = String.format("Error processing record %d of %d: %s", recordNumber, maxRecords, error);
Run Code Online (Sandbox Code Playgroud)


Pet*_*rey 28

还有另一种方式

String text = (num < 10 ? "0" : "") + num;
Run Code Online (Sandbox Code Playgroud)

编辑:代码足够短,JIT可以将其编译为空.;)

long start = System.nanoTime();
for(int i=0;i<100000;i++) {
    for(int num=1;num<100;num++) {
        String text = (num < 10 ? "0" : "") + num;
    }
}
long time = System.nanoTime() - start;
System.out.println(time/99/100000);
Run Code Online (Sandbox Code Playgroud)

版画

0
Run Code Online (Sandbox Code Playgroud)


Mat*_*lis 13

您可以使用NumberFormat执行此操作:

NumberFormat format = new NumberFormat();
format.setMinimumIntegerDigits(2);
System.out.println(format.format(1));
Run Code Online (Sandbox Code Playgroud)

- String.format()是一种Java 5方法.

如果您使用的是Java 5或更高版本,则可以执行以下操作:

String.format("%02d", 1);

正如其他答案所述.


Tal*_*man 13

运用

String.format("%02d", num)
Run Code Online (Sandbox Code Playgroud)

可能是最好的选择.


Dea*_*mer 5

尝试这个

String.format("%02d", num)
Run Code Online (Sandbox Code Playgroud)