1. 程式人生 > 其它 >CodeUtil【隨機字串工具類】

CodeUtil【隨機字串工具類】

package com.Lucky.Util;

import java.util.ArrayList;
import java.util.Random;

/**
 * 自定義的隨機字串工具類
 */
public class CodeUtil {

    //方法
    public static String StrCode(){
        //建立集合,儲存字串的資料
        ArrayList<Character> list=new ArrayList<>();  //charactor的範圍: 0-51
        //新增大小寫字母
        for (int i = 0; i < 26; i++) {
            list.add((char) ('a'+i));  //強制轉換為char型別   a-z
            list.add((char) ('A'+i));  //強制轉換為char型別   A-Z
        }


        //建立空字串
        String result="";
        //建立隨機物件
        Random ran=new Random();
        //遍歷新增長度為4的隨機字串
        for (int i = 0; i < 4; i++) {
            //獲取隨機字串的索引
           int c=ran.nextInt(list.size());
           //根據索引將隨機值找到並新增到result中
            char res=list.get(c);
            result=result+res;  //自動轉換型別為String
        }

        //隨機生成2位數數字並且拼接到result中
        for (int i = 0; i < 2; i++) {
            int num=ran.nextInt(10);  //限定範圍10以內
            result=result+num;    //自動轉換型別為String
        }

        //要實現真正隨機字串,將result字串的順序進行打亂
        //1.將字串轉換成char陣列進行操作
        char[] charLis=result.toCharArray();
        //2.隨機獲取charLis陣列的一個索引跟其他位置的索引位置進行互換
          char temp=charLis[4];     //這裡就將索引為4的資料找出來
        //3.在char陣列中隨機選擇一個索引跟temp的資料互換
          int intNum=ran.nextInt(charLis.length);
          charLis[4]=charLis[intNum];
          charLis[intNum]=temp;


         //4.重新將char轉換回String字串
         String  Str=new String(charLis);
         //5.返回字串
        return Str;
    }


}