Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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中,如何将左填充零添加到数字中?_Java_String Formatting - Fatal编程技术网

在Java中,如何将左填充零添加到数字中?

在Java中,如何将左填充零添加到数字中?,java,string-formatting,Java,String Formatting,我有一个整数100,如何将其格式化为00000100(始终为8位数)?尝试以下操作: String formattedNumber = String.format("%08d", number); 您还可以使用类DecimalFormat,如下所示: NumberFormat formatter = new DecimalFormat("00000000"); System.out.println(formatter.format(100)); // 00000100 String.form

我有一个整数
100
,如何将其格式化为
00000100
(始终为8位数)?

尝试以下操作:

String formattedNumber = String.format("%08d", number);

您还可以使用类
DecimalFormat
,如下所示:

NumberFormat formatter = new DecimalFormat("00000000");
System.out.println(formatter.format(100)); // 00000100

String.format
使用格式字符串,如所述

这也适用于:

int i = 53;
String spaceHolder = "00000000";
String intString = String.valueOf(i);
String string = spaceHolder.substring(intString.lenght()).contract(intString);
但是其他的例子要简单得多。

还有另一种方法。;)

-1=>9999999(九补)

import java.util.concurrent.Callable;
/*印刷品。
String.format(“%08d”):每次呼叫的时间3822
(“”+(500000000+x)).substring(1):每次呼叫的时间593
占位符:每次通话时间730
*/
公共类字符串计时器{
公共静态无效时间(字符串描述,可调用测试){
试一试{
//热身

对于(int i=0;i),如果需要解析该字符串,或支持I18n,请考虑扩展

java.text.Format 

对象。使用其他答案帮助您获得格式。

如果您只需要打印出来,这是一个较短的版本:

System.out.printf("%08d\n", number);

如果谷歌番石榴是一种选择:

String output = Strings.padStart("" + 100, 8, '0');
或者,Apache Commons Lang:

String output = StringUtils.leftPad("" + 100, 8, "0");

“8位”(而不是“8个数字”)对于创造性的解决方案更为正确,尽管速度较慢:-).不适用于负数。但是,您可能会发现它没有其他解决方案慢,并且没有为负数定义行为。与其他解决方案一样,将有一个非DDDD,其中D是一个数字,输出负数。每次调用它时,都会创建一个新的格式化程序实例。因此,我必须承认,对于大量的它会导致大内存问题。
String output = Strings.padStart("" + 100, 8, '0');
String output = StringUtils.leftPad("" + 100, 8, "0");