首页>>程序代码>>java通过同步实现自动产生永不重复ID字符串
java通过同步实现自动产生永不重复ID字符串
来源: 易习特达网 时间: 2014-08-27 10:49:09

import java.util.Calendar;
import java.util.Vector;

 

public class RoomSiteGen {
  private static int res=0;
  public static void setRes(int resu){         //该方法用来通过定时器自动的将初始的自增变量res重置为某一数据
    res=resu;
  }
  private  static String getYearMonth(){    //获取年月
      Calendar cal = Calendar.getInstance();
      int year = cal.get(Calendar.YEAR);
      int month = cal.get(Calendar.MONTH)+1;
      return String.valueOf(year)+String.valueOf(month);
  }
  
  /**
   * size 表示要显示的位数
   * 该方法描述了如果数字位数小于指定size的位数的时候
   * 自动在该数字前置0
   * 2010-6-13
   */
  private static synchronized String gen(int size){ 
      res++;
      StringBuilder sb =new StringBuilder(String.valueOf(res));
      int len =sb.length();
      while(len<size){
          sb.insert(0, 0);
          len++;
      }
      return sb.toString();
  }
  /**
   * @wangpeng
   * @param prefix  前缀
   * @param showSize 显示的位数
   * @return
   */
  public static  String getRightKeys(String prefix,int showSize){
      String yearMonth = getYearMonth();
      String subfix = gen(showSize);
      String result  =  prefix.toUpperCase()+"-"+yearMonth+subfix;
      return result;
  }
  
  public static Vector<String> getKeyList(int cout,String prefix,int showSize){
    Vector<String> vet = new Vector<String>();
    for(int k=0 ;k<cout ;k++){
        vet.add(getRightKeys(prefix,showSize));
    }
    return vet;
  }
  
}

网友评论留言

验证码 换一张
上一篇:JavaScript Script标签的defer属性 下一篇:js在指定位置显示层