String前补0
java的String字符串补0或空格
?
方法一:自己写的方法
/*
*数字不足位数左补0
*
* @param str
* @param strLength
*/
public static String addZeroForNum(String str, int strLength) {
int strLen = str.length();
if (strLen < strLength) {
while (strLen < strLength) {
StringBuffer sb = new StringBuffer();
sb.append("0").append(str);//左补0
// sb.append(str).append("0");//右补0
str = sb.toString();
strLen = str.length();
}
}
return str;
}
可以补“0”也可以补“”
方法2 :需要确定补多少0.
public class P {
public static void main(String[] args){
? String pattern="000";
? java.text.DecimalFormat df = new java.text.DecimalFormat(pattern);
? int i = 10,j=6;
? System.out.println("i="+df.format(i)+"\nj="+df.format(j));
}
}
---------------------输出-----------------------
i=010
j=006
方法3:使用正则效率特低, 建议寻找其它方式
/**
* Java里数字转字符串前面自动补0的实现。
*
* @author 老紫竹研究室(laozizhu.com)
*
*/?
.public class TestStringFormat {?
? public static void main(String[] args) {?
??? int youNumber = 1;?
??? // 0 代表前面补充0?
??? // 4 代表长度为4?
??? // d 代表参数为正数型?
??? String str = String.format("%04d", youNumber);?
??? System.out.println(str); // 0001?
? }
----------
??String a = "1A95E2C2A6";
??String pattern="0000000000000000";
??System.out.println(pattern.substring(0, pattern.length()-a.length())+a);