• <td id="sm1ta"><ruby id="sm1ta"></ruby></td>

        <track id="sm1ta"></track>
        <acronym id="sm1ta"><strong id="sm1ta"></strong></acronym>
        1. 最全的java隨機數生成算法

          時間:2020-08-09 13:23:53 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隨機數生成算法】相關文章:

          java排序算法大全08-16

          java算法字符組合排序08-16

          關于Java通用權限控制的算法10-07

          java五種排序算法匯總09-17

          Java中如何構造、生成XML簡明11-10

          Java認證輔導:Java實現二叉樹遍歷算法10-03

          JAVA認證基礎知識:近似算法(格雷厄姆算法)簡介09-30

          JAVA垃圾收集算法與內存泄露的解決方法10-05

          Java與Java web的區別11-10

          亚洲精品无码