随机数算法 java_最全的java随机数生成算法

Java (15) 2024-03-16 10:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说随机数算法 java_最全的java随机数生成算法,希望能够帮助你!!!。

最全的java随机数生成算法

java随机数生成算法是怎么样的?下面yjbys小编为大家分享最新最全的java随机数生成算法,希望对大家学习有所帮助!

一个最全的随机数的生成算法,最代码的找回密码的随机数就是用的这个方法:

1 String password = RandomUtil.generateString(10);

源码如下:

001 package com.javaniu.core.util;

002

003 import java.util.Random;

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 sb.append(ALLCHAR.charAt(random.nextInt(ALLCHAR.length())));

022 }

023 return sb.toString();

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 sb.append(ALLCHAR.charAt(random.nextInt(LETTERCHAR.length())));

038 }

039 return sb.toString();

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 sb.append('0');

075 }

076 return sb.toString();

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 = String.valueOf(num);

091 if (fixdlenth - strNum.length() >= 0) {

092 sb.append(generateZeroString(fixdlenth - strNum.length()));

093 } else {

094 throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth

095 + "的字符串发生异常!");

096 }

097 sb.append(strNum);

098 return sb.toString();

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 = param.length; i > 1; i--) {

110 int index = rand.nextInt(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 System.out.println("返回一个定长的随机字符串(只包含大小写字母、数字):"+ generateString(10));

124 System.out

125 .println("返回一个定长的`随机纯字母字符串(只包含大小写字母):"+ generateMixString(10));

126 System.out.println("返回一个定长的随机纯大写字母字符串(只包含大小写字母):"

127 + generateLowerString(10));

128 System.out.println("返回一个定长的随机纯小写字母字符串(只包含大小写字母):"

129 + generateUpperString(10));

130 System.out.println("生成一个定长的纯0字符串:" + generateZeroString(10));

131 System.out.println("根据数字生成一个定长的字符串,长度不够前面补0:"

132 + toFixdLengthString(123, 10));

133 int[] in = { 1, 2, 3, 4, 5, 6, 7 };

134 System.out.println("每次生成的len位数都不相同:" + getNotSimple(in, 3));

135 }

136 }

【最全的java随机数生成算法】相关文章:

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复