最全的java随机数生成算法
java随机数生成算法是怎么样的?下面yjbys小编为大家分享最新最全的java随机数生成算法,希望对大家学习有所帮助!
一个最全的随机数的生成算法,最代码的找回密码的随机数就是用的这个方法:
1 String password = rateString(10);
源码如下:
001 package ;
002
003 import om;
004
005 public class RandomUtil {
006 public static finalString ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
007 public static finalString LETTERCHAR = "abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
008 public static final String NUMBERCHAR = "0123456789";
009
010 /**
011 * 返回一个定长的随机字符串(只包含大小写字母、数字)
012 *
013 * @param length
014 * 随机字符串长度
015 * @return 随机字符串
016 */
017 public static String generateString(int length) {
018 StringBuffer sb = new StringBuffer();
019 Random random = new Random();
020 for (int i = 0; i < length; i++) {
021 nd(At(Int(th())));
022 }
023 return ring();
024 }
025
026 /**
027 * 返回一个定长的`随机纯字母字符串(只包含大小写字母)
028 *
029 * @param length
030 * 随机字符串长度
031 * @return 随机字符串
032 */
033 public static String generateMixString(int length) {
034 StringBuffer sb = new StringBuffer();
035 Random random = new Random();
036 for (int i = 0; i < length; i++) {
037 nd(At(Int(th())));
038 }
039 return ring();
040 }
041
042 /**
043 * 返回一个定长的随机纯大写字母字符串(只包含大小写字母)
044 *
045 * @param length
046 * 随机字符串长度
047 * @return 随机字符串
048 */
049 public static String generateLowerString(int length) {
050 return generateMixString(length)。toLowerCase();
051 }
052
053 /**
054 * 返回一个定长的随机纯小写字母字符串(只包含大小写字母)
055 *
056 * @param length
057 * 随机字符串长度
058 * @return 随机字符串
059 */
060 public static String generateUpperString(int length) {
061 return generateMixString(length)。toUpperCase();
062 }
063
064 /**
065 * 生成一个定长的纯0字符串
066 *
067 * @param length
068 * 字符串长度
069 * @return 纯0字符串
070 */
071 public static String generateZeroString(int length) {
072 StringBuffer sb = new StringBuffer();
073 for (int i = 0; i < length; i++) {
074 nd('0');
075 }
076 return ring();
077 }
078
079 /**
080 * 根据数字生成一个定长的字符串,长度不够前面补0
081 *
082 * @param num
083 * 数字
084 * @param fixdlenth
085 * 字符串长度
086 * @return 定长的字符串
087 */
088 public static String toFixdLengthString(long num, int fixdlenth) {
089 StringBuffer sb = new StringBuffer();
090 String strNum = eOf(num);
091 if (fixdlenth - th() >= 0) {
092 nd(generateZeroString(fixdlenth - th()));
093 } else {
094 throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth
095 + "的字符串发生异常!");
096 }
097 nd(strNum);
098 return ring();
099 }
100
101 /**
102 * 每次生成的len位数都不相同
103 *
104 * @param param
105 * @return 定长的数字
106 */
107 public static int getNotSimple(int[] param, int len) {
108 Random rand = new Random();
109 for (int i = th; i > 1; i--) {
110 int index = Int(i);
111 int tmp = param[index];
112 param[index] = param[i - 1];
113 param[i - 1] = tmp;
114 }
115 int result = 0;
116 for (int i = 0; i < len; i++) {
117 result = result * 10 + param[i];
118 }
119 return result;
120 }
121
122 public static void main(String[] args) {
123 tln("返回一个定长的随机字符串(只包含大小写字母、数字):"+ generateString(10));
124
125 tln("返回一个定长的随机纯字母字符串(只包含大小写字母):"+ generateMixString(10));
126 tln("返回一个定长的随机纯大写字母字符串(只包含大小写字母):"
127 + generateLowerString(10));
128 tln("返回一个定长的随机纯小写字母字符串(只包含大小写字母):"
129 + generateUpperString(10));
130 tln("生成一个定长的纯0字符串:" + generateZeroString(10));
131 tln("根据数字生成一个定长的字符串,长度不够前面补0:"
132 + toFixdLengthString(123, 10));
133 int[] in = { 1, 2, 3, 4, 5, 6, 7 };
134 tln("每次生成的len位数都不相同:" + getNotSimple(in, 3));
135 }
136 }
-
java工程师认证考试考点:数据库服务区考点汇总
关于java认证考试,同学们知道数据库及服务器的知识点有哪些?下面跟yjbys小编一起来复习一下吧!(一)服务器1、web服务器nginx和apache的对比分析①nginx相对于apache的优点:轻量级,同样起web服务,比apache占用更少的内存及资源,抗并发,nginx处理请求是异步非阻塞的,而a...
-
Java笔试题附答案
Sun认证Java程序员考试内容涉及Java所有相关知识、编程概念及applet开发技巧。以下是小编整理的关于Java笔试题附答案,希望大家认真阅读!一、单项选择题是从()语言改进重新设计。B.C++calC答案:B2.下列语句哪一个正确()A.Java程序经编译后会产生machinecode程序...
-
java程序员面试题
Sun认证Java程序员考试旨在考察您通过应用软件分配进行复杂编程的能力。之后还要测试您完成编程所需的知识。以下是小编整理的java程序员面试题,希望大家认真阅读!第一,谈谈final,finally,finalize的区别。第二,AnonymousInnerClass(匿名内部类)是否可以extends(继...
-
JAVA正则表达式语法大全
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。你知道Java正则表达式语法有哪些吗?跟yjbys小编一起来看看吧![正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^\d{...