经常遇到要对某些数据进行补位的情况,有些是数据格式问题,有些是设计的问题,就抽空写了个拙劣的补位函数,
package TestPac;
public class DoCover {
/*******参数 bit 表示固定位数
*******参数 digit 要补位的数字
******参数TOF 表示前补位或后补位,true 前补位, false 后补位
******参数 str用来补位的字符,如0,1,a,b…
**********/
public static String doCover(Integer bit,Integer digit,boolean TOF,String str){
//将数字digit 转换成字符串string类型
//计算字符串 digit的长度length
//计算length与bit的差值diff
//根据TOF确定是要前补位还是后补位.TOF= true前补位,TOF= false后补位
//根据diff进行补位
String digit_str = digit.toString();
Integer diff = bit-digit_str.length();
StringBuffer sb = new StringBuffer(digit_str);
StringBuffer sb_str = new StringBuffer(str);
for(int i=0;i<diff;i++){
if(TOF){//前补位
StringBuffer blank_str = new StringBuffer("");
blank_str.append(sb_str);
sb = blank_str.append(sb);
}
else {// 后补位
sb = sb.append(str);
}
}
System.out.println("***=="+sb.toString());
return sb.toString();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
doCover(4,3,true,"0");
doCover(4,23,true,"0");
doCover(4,756,true,"0");
doCover(4,1234,true,"0");
doCover(4,12345,true,"0");
doCover(4,3,false,"0");
doCover(4,23,false,"0");
doCover(4,756,false,"0");
doCover(4,1234,false,"0");
doCover(4,12345,false,"0");
}
}