java整数或数字字符串位数不足前面或后面补零的方法,一般都是使用自定义简单封装、String.format、NumberFormat等都可以实现。
自定义简单封装/**
* 数字不足位数前后补0
* @param num 参与补零的数字
* @param len 最终位数长度
* @param prev 前或后,true前,false后
* @return
*/
public static String zeroFormat(Integer num, int len, boolean prev) {
int l = num.toString().length();
StringBuffer sb = new StringBuffer();
if(!prev)
sb.append(num);//后补
for(int i=0;i
sb.append("0");
if(prev)
sb.append(num);//前补
return sb.toString();
}//前补0
String str1 = zeroFormat(12, 5, true);
System.out.println(str1);//00012
//后补0
String str2 = zeroFormat(12, 5, false);
System.out.println(str2);//12000
使用String.format//前补零
String str1 = String.format("%05d", 12);
System.out.println(str1);//00012
//后补零
String num = "12";
int len = 5;
String str2 = num + String.format("%0"+(len - num.length())+"d", 0);
System.out.println(str2);//12000
使用Number、DecimalFormat
支持小数、负数、货币、百分比等等各种操作//前补零
String str1 = new DecimalFormat("00000").format(12);
System.out.println(str1);//00012
String str2 = new DecimalFormat("00000.000").format(12.12);
System.out.println(str2);//00012.120
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setGroupingUsed(false);//不分组
formatter.setMinimumIntegerDigits(5);//整数部分中所允许的最小数字位数
//formatter.setMinimumFractionDigits(3);//小数部分中所允许的最小数字位数
String str3 = formatter.format(12);
System.out.println(str3);//00012
//后面补零
Integer num = 12;
int len = 5;
int l = len - num.toString().length();
DecimalFormat df = new DecimalFormat();
df.setGroupingUsed(false);
df.setMinimumIntegerDigits(len);
if(l>0)
df.setMultiplier((int)Math.pow(10,l));
System.out.println(df.format(num));//12000
原创文章,转载请注明出处:https://www.weizhixi.com/article/69.html