/**
   * 如果inStr字符串与没有给定length的长度,则用fill填充,在指定direction的方向
   * 如果inStr字符串长度大于length就直截返回inStr,不做处理
   * @param inStr 待处理的字符串
   * @param fill 以该字符串作为填充字符串
   * @param length 填充后要求的长度
   * @param direction 填充方向,如果是AFTER填充在后面,否则填充在前面
   * @return 返回一个指定长度填充后的字符串
   */
  public static String fillStr(String inStr,String fill,int length,int direction){
    if(inStr==null || inStr.length() > length || inStr.length()==0) return inStr;    StringBuffer tempStr = new StringBuffer("");
    for (int i = 0 ; i<length-inStr.length() ; i++ ){
      tempStr.append(fill);
    }    if(direction == AFTER)
      return new String(tempStr.toString()+inStr);
    else
      return new String(inStr+tempStr.toString());
  }
  

解决方案 »

  1.   

    /**
       * 前导标识
      */
      public static final int BEFORE = 1;  /**
       * 后继标识
      */
      public static final int AFTER = 2;
      

  2.   

    NumberFormat nf = new DecimalFormat("0000");
    int a = 23;
    String b = nf.format(a);
    System.out.println(b);
      

  3.   

    不用那么麻烦,直接用NumberFormat或者他的子类DecimalFormat格式化一下就可以了,3行代码,呵呵
      

  4.   

    DecimalFormat decimalFormat=new DecimalFormat("0000");
    int a = 1;
    String str = decimalFormat.format(a);
    System.out.println(str);
      

  5.   

    public class Test
    {
    int i;//输入
    int n;//n位
    public Test(int i,int n)
    {
    this.i=i;
    this.n=n;
    }
    public void method()
    {
    String s=Integer.toString(i);
    while(s.length()<n)
    {
    s="0"+s;
    }
    System.out.println(s);
    }
    public static void main(String[] args)
    {
    Test t=new Test(3,4);
    t.method();

    }
    }//简单明潦
      

  6.   

    用format方法比较简单,用程序处理对刚刚接触程序的人来说可能容易理解,觉得老程序员可能会倾向于前一种。