一个int型数据(3位或者4位数:346或者6754)赋给String型数据,不足8位前补0。
比如:00000346
      00006754请教实现方法?

解决方案 »

  1.   

    apache-lang包,StringUtils.leftPad
    可以自己看看大师写的源码
      

  2.   


    public class Test {

    public static void main(String[] args) {
    System.out.println(intToStringLeftPad(12345));
    }

    public static String intToStringLeftPad(int n) {
    int[] ia = new int[8];
    for(int i=0; i<ia.length && n!=0; i++) {
    ia[i] = n%10;
    n /= 10;
    }

    StringBuilder sb = new StringBuilder();
    for(int i=ia.length-1; i>=0; i--) {
    sb.append(ia[i]);
    }
    return sb.toString();
    }
    }
      

  3.   


    public class ToAdd { /**
     * 
     * @param i int型数据 如 6754
     * @param strLength int数据需填满的总长度 如8
     * @return 如 00006754
     */
    public String add(int i,int strLength){
    String returnStr="";
    returnStr=String.valueOf(i);
    while(returnStr.length()<strLength){
    returnStr="0"+returnStr;
    }
    return returnStr;
    }

    /**
     * Main
     * @param args
     */
    public static void main(String[] args) {
    String result=new ToAdd().add(6754, 8);
    System.out.println(result);
    }

    }
      

  4.   


    int a = 1234;
    String b = "0";
    StringBuffer sb = new StringBuffer();
    sb.append(a);
    sb.reverse();
    for(int i=sb.length();i<8;i=sb.length()){
    sb.append(b);
    }
    sb.reverse();
    System.out.println(sb);
      

  5.   

    String s = String.format("%08d", 346);
    System.out.println(s);