随机数算法 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • IOC 控制反转[通俗易懂]

    IOC 控制反转[通俗易懂]SpringFramework概述https://blog.csdn.net/centrl/article/details/115519480通过前面的学习,我们至少已经知道IOC,下面我们就来说说IOC是个什么东西。1.写在前面首先来想一件事,作为程序员,怎么开发程序才最巴适?我觉得最起码有两点:开发简单、升级简单。开发简单,就是我们只管写业务逻辑(培养只会写if-else的程序员)。 升级简单,这里也包含两点:我们使用的技术(可理解为框架)出了什么问…

    2022年6月16日
    33
  • linux端口占用查询「建议收藏」

    [root@Redhat72~]#lsof-iTCP:1521[root@Redhat72~]#netstat-itpa|grep1521

    2022年4月6日
    43
  • Ajax获取 Request 对象

    Ajax获取 Request 对象获取Request对象有了上面的基础知识后,我们来看看一些具体的例子。XMLHttpRequest 是Ajax应用程序的核心,而且对很多读者来说可能还比较陌生,我们就从这里开始吧。从 清单1 可以看出,创建和使用这个对象非常简单,不是吗?等一等。还记得几年前的那些讨厌的浏览器战争吗?没有一样东西在不同的浏览器上得到同样的结果。不管您是否相信,这些战争仍然在继续,虽

    2022年5月2日
    47
  • 一个服务器的吞吐率

    一个服务器的吞吐率

    2021年10月9日
    32
  • asp.net HTTP Post使用Multipart_FormData方式上传内存数据到Nexus

    asp.net HTTP Post使用Multipart_FormData方式上传内存数据到Nexus使用MultipartFormDataContent上传内存数据到nexus,在System.Net.Http.dll,v2.0.0.0中。///<summary>///HTTPPost使用Multipart_FormData方式上传内存数据到Nexus///</summary>///<param…

    2022年7月15日
    14
  • Struts2—->action

    Struts2—->action

    2021年8月19日
    49

发表回复

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

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