将1转换为01

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

还有另一种方式

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 

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

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

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

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

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

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

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

正如其他答案所述。

运用

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

可能是最好的选择。

试试这个

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

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

一种可能的方案:

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

使用数字格式http://download.oracle.com/javase/6/docs/api/java/text/NumberFormat.html

你可以这样做

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