源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

史上最全的java随机数生成算法分享

  • 时间:2020-07-20 02:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:史上最全的java随机数生成算法分享
[u]复制代码[/u] 代码如下:
String password = RandomUtil.generateString(10);
源码如下:
[u]复制代码[/u] 代码如下:
package com.javaniu.core.util; import java.util.Random; public class RandomUtil {  public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";  public static final String LETTERCHAR = "abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";  public static final String NUMBERCHAR = "0123456789";  /**   * 返回一个定长的随机字符串(只包含大小写字母、数字)   *   * @param length   *            随机字符串长度   * @return 随机字符串   */  public static String generateString(int length) {   StringBuffer sb = new StringBuffer();   Random random = new Random();   for (int i = 0; i < length; i++) {    sb.append(ALLCHAR.charAt(random.nextInt(ALLCHAR.length())));   }   return sb.toString();  }  /**   * 返回一个定长的随机纯字母字符串(只包含大小写字母)   *   * @param length   *            随机字符串长度   * @return 随机字符串   */  public static String generateMixString(int length) {   StringBuffer sb = new StringBuffer();   Random random = new Random();   for (int i = 0; i < length; i++) {    sb.append(ALLCHAR.charAt(random.nextInt(LETTERCHAR.length())));   }   return sb.toString();  }  /**   * 返回一个定长的随机纯大写字母字符串(只包含大小写字母)   *   * @param length   *            随机字符串长度   * @return 随机字符串   */  public static String generateLowerString(int length) {   return generateMixString(length).toLowerCase();  }  /**   * 返回一个定长的随机纯小写字母字符串(只包含大小写字母)   *   * @param length   *            随机字符串长度   * @return 随机字符串   */  public static String generateUpperString(int length) {   return generateMixString(length).toUpperCase();  }  /**   * 生成一个定长的纯0字符串   *   * @param length   *            字符串长度   * @return 纯0字符串   */  public static String generateZeroString(int length) {   StringBuffer sb = new StringBuffer();   for (int i = 0; i < length; i++) {    sb.append('0');   }   return sb.toString();  }  /**   * 根据数字生成一个定长的字符串,长度不够前面补0   *   * @param num   *            数字   * @param fixdlenth   *            字符串长度   * @return 定长的字符串   */  public static String toFixdLengthString(long num, int fixdlenth) {   StringBuffer sb = new StringBuffer();   String strNum = String.valueOf(num);   if (fixdlenth - strNum.length() >= 0) {    sb.append(generateZeroString(fixdlenth - strNum.length()));   } else {    throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth      + "的字符串发生异常!");   }   sb.append(strNum);   return sb.toString();  }  /**   * 每次生成的len位数都不相同   *   * @param param   * @return 定长的数字   */  public static int getNotSimple(int[] param, int len) {   Random rand = new Random();   for (int i = param.length; i > 1; i--) {    int index = rand.nextInt(i);    int tmp = param[index];    param[index] = param[i - 1];    param[i - 1] = tmp;   }   int result = 0;   for (int i = 0; i < len; i++) {    result = result * 10 + param[i];   }   return result;  }  public static void main(String[] args) {   System.out.println("返回一个定长的随机字符串(只包含大小写字母、数字):" + generateString(10));   System.out     .println("返回一个定长的随机纯字母字符串(只包含大小写字母):" + generateMixString(10));   System.out.println("返回一个定长的随机纯大写字母字符串(只包含大小写字母):"     + generateLowerString(10));   System.out.println("返回一个定长的随机纯小写字母字符串(只包含大小写字母):"     + generateUpperString(10));   System.out.println("生成一个定长的纯0字符串:" + generateZeroString(10));   System.out.println("根据数字生成一个定长的字符串,长度不够前面补0:"     + toFixdLengthString(123, 10));   int[] in = { 1, 2, 3, 4, 5, 6, 7 };   System.out.println("每次生成的len位数都不相同:" + getNotSimple(in, 3));  } }
有图有真相: [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100128_0_73038.jpg[/img] java随机字符补充版 今天在zuidaimai看到一个java随机字符生成demo,正好要用,但发现不完整,重新整理一下,分享给有需要的朋友
[u]复制代码[/u] 代码如下:
public static void main(String[] args) {            //String s = RandomNum.getRandomNumStr(5);         //System.out.println(s);         System.out.println("生成5个含有5个字符的字符串:");         RandomNum.SuiJiZiFuChuan(5,5);         System.out.println("生成3个含有6个字符的字符串:");         RandomNum.SuiJiZiFuChuan(6,3);         System.out.println("生成任意1到20个含有任意1到10个字符的字符串:");         RandomNum.SuiJiZiFuChuan((int)(20*Math.random()),(int)(10*Math.random()));         System.out.println("随机性生成字符:");         int i=0;         while(i<(int)(10*Math.random())){             RandomNum.SuiJiZiFuChuan((int)(20*Math.random()),1);             i++;         }     }        public static void SuiJiZiFuChuan(int x,int y){         for(int j=0;j<y;j++){             for(int i=0;i<x;i++){                 int a=(int)(100*Math.random()+100*Math.random());                 while(true){                     if(a>96&a<123)                         break;                     else                         a=(int)(100*Math.random()+100*Math.random());                 }                 System.out.print((char)a);             }             System.out.println();         }     }
执行结果: [img]http://img.1sucai.cn/uploads/article/2018010710/20180107100128_1_86155.gif[/img] 来源: http://www.zuidaima.com/share/1585762703215616.htm
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部