Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将1转换为01_Java - Fatal编程技术网

Java 将1转换为01

Java 将1转换为01,java,Java,我的整数在1到99之间。如何使其始终为两位数,即:01、04、21?使用数字格式 您不能仅使用整数。您必须在字符串之间进行转换(用于显示)并返回整数(用于计算)。您可以使用根据输入格式化字符串。一种可能的解决方案: String.valueOf(number + 100).substring(1); 大概你的意思是将数字存储在字符串中 自JDK1.5以来,就出现了一种方法,它可以让您完全按照自己的意愿进行操作: String s = String.format("%02d", someNumb

我的整数在1到99之间。如何使其始终为两位数,即:01、04、21?

使用数字格式

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

一种可能的解决方案:

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

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

自JDK1.5以来,就出现了一种方法,它可以让您完全按照自己的意愿进行操作:

String s = String.format("%02d", someNumber);
String.format()的一个优点是,您可以使用它构建更复杂的字符串,而无需使用大量的串联,从而生成更干净的代码

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

String.format("%02d", num)
您可以通过以下方式执行此操作:

注意-是一种Java 5方法

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

String.format(“%02d”,1)

如其他答案所述。

还有另一种方式

String text = (num < 10 ? "0" : "") + num;
你可以这样做

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


可能是最好的选择。

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

样本剪:打印00到100

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

或者您可以使用printf而不是String.format

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

for(int i=0;我不知道你为什么会得到-1,完全有效的答案,我会让你出局。@Peter Lawrey,不仅如此,而且你的方法速度更快。在使用来自(0-100)对每个方法使用相同的种子,并且每个方法自己生成数字,您的方法的平均时间为118纳秒,而String.format方法的平均时间为2666纳秒。向下投票!String.format不是很有效。它更灵活。您可能会发现118纳秒中的很多都是用来创建随机数的。(顺便说一句,0不在OP问题中)反复尝试1-99。@Peter Lawrey,我毫不怀疑我的大部分时间都花在了创建数字上,而且我还有一个打印输出,每100k次迭代一次。我还意识到String.format比int检查更具可扩展性(我大学的大部分工作都是用C printf ftw完成的)。我只是对你被否决感到不安。@Shade,谢谢你的支持。:)那应该是
“%02d”
,而不是
“%2d”
,否则你就得不到领先的零。嘿,我没说这是一个好的解决方案,只是一个解决方案:-)你说的是System.out.format(“%02d%n”,I);
String.format("%02d", 1)
String.format("%02d", num)
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
 for (int i = 0; i <= 100; i++) {
         System.out.printf("%02d%n",i);
    }