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


相关推荐

  • python数组截取

    python数组截取importtensorflowastfimportnumpyasnp#one-dimentiona=np.array([0,1,2,3,4,5,6,7,8,9])print(a)b=a[:4]print(b)c=a[4:]print(c)#multi-dimentiond=np.array([[0,1,2,3,4,5,6,7,8,9],[1,2,3,4…

    2022年4月30日
    49
  • 吐血总结!50道Python面试题集锦(附答案)「建议收藏」

    吐血总结!50道Python面试题集锦(附答案)「建议收藏」Python是目前编程领域最受欢迎的语言。在本文中,我将总结Python面试中最常见的50个问题。每道题都提供参考答案,希望能够帮助你在2019年求职面试中脱颖而出,找到一份高薪工作。这些面试题涉及Python基础知识、Python编程、数据分析以及Python函数库等多个方面。Q1、Python中的列表和元组有什么区别?Q2、Python的主要功能是什么?Python是一种解释型…

    2022年6月10日
    34
  • Werkstatt Munchen_we.elk

    Werkstatt Munchen_we.elkWSGIapplication接收两个参数:“environment”和“start_response”。requestclass可以包装environ,方便对environ进行操作fromwerkzeug.wrappersimportRequest,Responsedefapplication(environ,start_response):request=Request(environ)response=Response(“Hello%s!”%r

    2022年10月6日
    2
  • Hive 拉链表实践

    Hive 拉链表实践Hive拉链表实践

    2022年10月9日
    3
  • 静态变量存储在那个区? – 转[通俗易懂]

    静态变量存储在那个区? – 转[通俗易懂]一时间忘咯然后就去转载..静态变量存储在__区A全局区B堆C栈D常量区参考答案:A知识点内存到底分几个区?1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由os回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域…

    2022年6月14日
    44
  • 2022年N1叉车司机考试模拟100题及模拟考试

    2022年N1叉车司机考试模拟100题及模拟考试题库来源:安全生产模拟考试一点通公众号小程序2022N1叉车司机试题为N1叉车司机培训试题理论知识考试题库!2022年N1叉车司机考试模拟100题及模拟考试依据N1叉车司机考试教材。N1叉车司机全部考试题库随时根据安全生产模拟考试一点通上练习全部题库。1、【多选题】《中华人民共和国特种设备安全法》第八十四条规定,特种设备使用单位的特种设备存在严重事故隐患,无改造、修理价值,或者达到安全技术规范规定的其他报废条件,未依法履行报废义务,并办理使用登记证书注销手续的。责令停止使用有关特种设备,处()以

    2022年9月6日
    6

发表回复

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

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