将1转换为01

时间:2011-03-04 17:29:20

标签: java

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

11 个答案:

答案 0 :(得分:34)

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

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

String s = String.format("%02d", someNumber);

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

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

答案 1 :(得分:28)

又一种方式

String text = (num < 10 ? "0" : "") + num;

编辑:代码足够短,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);

打印

0

答案 2 :(得分:13)

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

NumberFormat format = new NumberFormat();
format.setMinimumIntegerDigits(2);
System.out.println(format.format(1));

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

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

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

如其他答案中所述。

答案 3 :(得分:13)

使用

String.format("%02d", num)

可能是最好的选择。

答案 4 :(得分:5)

试试这个

String.format("%02d", num)

答案 5 :(得分:3)

你不能只使用int。您必须在字符串(用于显示)和返回到整数(用于计算)之间进行转换。您可以根据输入使用Java Formatter格式化字符串。

答案 6 :(得分:3)

您可以通过

执行此操作
String.format("%02d", 1)

答案 7 :(得分:2)

答案 8 :(得分:2)

一种可能的解决方案:

String.valueOf(number + 100).substring(1);

答案 9 :(得分:1)

我认为,我应该将链接添加到有关格式化数字输出的Java官方文档中。

https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

样本摘要:最多可打印00到100

class Main {
    public static void main(String[] args) {
      for(int i=0;i<=100;i++){
        System.out.println(String.format("%02d", i)); 
      }
    }
}

输出:

00
01
...
10
...
100

答案 10 :(得分:0)

或者您可以只使用printf代替String.format

 for (int i = 0; i <= 100; i++) {
         System.out.printf("%02d%n",i);
    }