随机数算法 java_最全的java随机数生成算法[通俗易懂]

随机数算法 java_最全的java随机数生成算法[通俗易懂]最全的java随机数生成算法java随机数生成算法是怎么样的?下面yjbys小编为大家分享最新最全的java随机数生成算法,希望对大家学习有所帮助!一个最全的随机数的生成算法,最代码的找回密码的随机数就是用的这个方法:1Stringpassword=RandomUtil.generateString(10);源码如下:001packagecom.javaniu.core.util;00…

大家好,又见面了,我是你们的朋友全栈君。

最全的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随机数生成算法】相关文章:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158941.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月14日 下午9:36
下一篇 2022年7月14日 下午9:46


相关推荐

  • 银行家算法(c语言实现)

    银行家算法(c语言实现)银行家算法是资源和死锁避免的算法,由艾兹格·迪杰斯特拉(EdsgerDijkstra)设计的算法用于测已确定总数量的资源分配的安全性,在决定是否该分配应该被允许并进行下去之前,通过“s-state”校验码测试资源分配活动期间产生死锁条件的可能性。     该算法是为为THE操作系统设计并且最在在EWD108描述。当一个新的进程进入系统时,进程必须声明所需每个资源实例最大的数量和类型。显然,资…

    2022年6月11日
    33
  • 让我郁闷的第一次做站[通俗易懂]

    让我郁闷的第一次做站[通俗易懂]我是今年7月份毕业的,我在学校学的软件专业,但是在学校的时候很贪玩,没学到多少东西,毕业后找本专业的工作处处碰壁找不到,后来去了个seo公司,他们是做英文的,这也是我第一次接触这个行业,原来不知道seo的存在。这个公司很小的,其实主要的业务都是给别人代发外链,我也就成了外链专员。因为刚接触连seo是什么都不知道,我就在网上到处找相关的论坛视频教程看,发现很多教程都是要收费的,不收费的讲的太潦草,有

    2022年5月17日
    41
  • 白盒测试用例设计方法有哪些_软件测试语句覆盖测试用例

    白盒测试用例设计方法有哪些_软件测试语句覆盖测试用例白盒测试设计方法编写:天林问题:白盒测试方法的概念及应用场景白盒测试方法用各种逻辑覆盖法来和设计白盒测试用例使用基本路径法来设计白盒测试用例内容:白盒测试的基本介绍白盒测试用例设计方法静态设计方法动态设计方法一、白盒测试的概念及特点1、什么是白盒测试代码逻辑的测试白盒测试,又称结构测试、逻辑驱动测试或基于程序代码内部构成的测试。此时,测试工程师需深入考察程序代码的内部结构、逻辑设计等。对于白盒测试工程师来说,软件产品内部构成是透明的。下列代码是

    2022年10月12日
    4
  • 月之暗面Kimi反馈后 百度迅速优化Kimi搜索结果呈现

    月之暗面Kimi反馈后 百度迅速优化Kimi搜索结果呈现

    2026年3月12日
    2
  • 太狠了!Manus直接把你的浏览器变成“私人AI代理”,CRM、Crunchbase、PitchBook随便爬,再也不怕验证码和封号!

    太狠了!Manus直接把你的浏览器变成“私人AI代理”,CRM、Crunchbase、PitchBook随便爬,再也不怕验证码和封号!

    2026年3月15日
    1
  • oracle amm和asmm,AMM和ASMM理解 | 学步园

    oracle amm和asmm,AMM和ASMM理解 | 学步园oracle11g新出参数MEMORY_MAX_TARGET和MEMORY_TARGET进行自动管理PGA和SGA称之为自动化内存管理(AutomaticMemoryManagement,AMM)MEMORY_MAX_TARGET:MEMORY_TARGET所能设定的最大值。非动态可调MEMORY_TARGET:操作系统上Oracle所能使用的最大内存值。动态参数,M…

    2022年6月1日
    63

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号