你如何在java中转换为字符串时留下一个零填充int ?
我基本上是在寻找以前导零填充到9999的整数(例如1 = 0001)。
你如何在java中转换为字符串时留下一个零填充int ?
我基本上是在寻找以前导零填充到9999的整数(例如1 = 0001)。
当前回答
下面是如何不使用DecimalFormat格式化字符串的方法。
字符串。格式(“% 2 d”,9)
09
字符串。格式(“% d 03”,19)
019
字符串。格式(“% 04 d”,119年)
0119
其他回答
虽然上面的许多方法都很好,但有时我们需要格式化整数和浮点数。我们可以使用这个方法,特别是当我们需要在小数的左右填充特定数量的0时。
import java.text.NumberFormat;
public class NumberFormatMain {
public static void main(String[] args) {
int intNumber = 25;
float floatNumber = 25.546f;
NumberFormat format=NumberFormat.getInstance();
format.setMaximumIntegerDigits(6);
format.setMaximumFractionDigits(6);
format.setMinimumFractionDigits(6);
format.setMinimumIntegerDigits(6);
System.out.println("Formatted Integer : "+format.format(intNumber).replace(",",""));
System.out.println("Formatted Float : "+format.format(floatNumber).replace(",",""));
}
}
假设你想把11打印成011
您可以使用格式化程序:“%03d”。
你可以像这样使用这个格式化器:
int a = 11;
String with3digits = String.format("%03d", a);
System.out.println(with3digits);
另外,一些java方法直接支持这些格式化器:
System.out.printf("%03d", a);
你可以像这样给字符串加上前导0。定义一个字符串,该字符串将是所需字符串的最大长度。在我的情况下,我需要一个字符串,将只有9字符长。
String d = "602939";
d = "000000000".substring(0, (9-d.length())) + d;
System.out.println(d);
输出:000602939
如果你出于任何原因使用1.5之前的Java,那么可以尝试使用Apache Commons Lang方法
org.apache.commons.lang.StringUtils.leftPad(String str, int size, '0')
Kotlin的
fun Calendar.getFullDate(): String {
val mYear = "${this.get(Calendar.YEAR)}-"
val mMonth = if (this.get(Calendar.MONTH) + 1 < 10) {
"0${this.get(Calendar.MONTH) + 1}-"
} else {
"${this.get(Calendar.MONTH)+ 1}-"
}
val mDate = if (this.get(Calendar.DAY_OF_MONTH) < 10) {
"0${this.get(Calendar.DAY_OF_MONTH)}"
} else {
"${this.get(Calendar.DAY_OF_MONTH)}"
}
return mYear + mMonth + mDate
}
并将其用作
val date: String = calendar.getFullDate()