论坛首页 Java企业应用论坛

随机产生任意位数的数字编号代码

浏览 4924 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (4)
作者 正文
   发表时间:2010-02-21   最后修改:2010-02-21

随机生成任意位数的编号,适用于各种商品编号。

不知道有没有更简单的算法来生成?

 

public static String doGenRamdomNum(int digits){
	   java.util.Random r=new java.util.Random();		
           int random = Math.abs(r.nextInt())% (int)(Math.pow(10, digits));
	   String result =null ;
	   int length = (random+"").length();		
	   result = random*((int)Math.pow(10, digits-length))+"";
	
          return result;
	}
   发表时间:2010-02-21  
为何不直接用 UUID ?
0 请登录后投票
   发表时间:2010-02-21  
evaspring 写道
为何不直接用 UUID ?

UUID感觉比较长,希望生产的编号全是数字形式的字符串。
0 请登录后投票
   发表时间:2010-02-22   最后修改:2010-02-22

 

      int lenght=10;
    	
    	 Random random = new Random(new Date().getTime());
    	 byte[] bi=new byte[lenght];
    	 random.nextBytes(bi);
    	 for (byte b : bi) {
		///用math.asb把byte的负号去掉,可以直接累加到需要的长度
    		char c=(b+"").charAt((""+b).length()-1);
    		System.out.print(c);
	  }
0 请登录后投票
   发表时间:2010-03-01  
可以重复?
0 请登录后投票
   发表时间:2010-10-11  
使用apache common lang 的 RandomStringUtils.randomNumeric(8)
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics