1. 程式人生 > >java基礎--17 自定義的RandomUtils類--用於產生各種隨機串的工具類

java基礎--17 自定義的RandomUtils類--用於產生各種隨機串的工具類

import java.util.Random;

public class RandomUtils {
//  定義所有的字元組成的串
    public static final String allChar = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//  定義所有的小寫字元組成的串(不包括數字)
    public static final String letterChar = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//  定義所有的數字字元組成的串
public static final String numberChar = "0123456789"; /** * 產生長度為length的隨機字串(包括字母和數字) * @param length * @return */ public static String generateString(int length) { StringBuffer sb = new StringBuffer(); Random random = new Random(); for (int i = 0
; i < length; i++) { sb.append(allChar.charAt(random.nextInt(allChar.length()))); } return sb.toString(); } /** * 產生長度為length的隨機字串(包括字母,不包括數字) * @param length * @return */ public static String generateMixString(int length) { StringBuffer sb = new
StringBuffer(); Random random = new Random(); for (int i = 0; i < length; i++) { sb.append(letterChar.charAt(random.nextInt(letterChar.length()))); } return sb.toString(); } /** * 產生長度為length的隨機小寫字串(包括字母,不包括數字) * @param length * @return */ public static String generateLowerString(int length) { return generateMixString(length).toLowerCase(); } /** * 產生長度為length的隨機大寫字串(包括字母,不包括數字) * @param length * @return */ public static String generateUpperString(int length) { return generateMixString(length).toUpperCase(); } /** * 產生長度為length的'0'串 * @param length * @return */ public static String generateZeroString(int length) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { sb.append('0'); } return sb.toString(); } /** * 將輸入的long整數值補全成為fixedlength長度的字串 * @param length * @return */ public static String toFixdLengthString(long num, int fixdlenth) { StringBuffer sb = new StringBuffer(); String strNum = String.valueOf(num); if (fixdlenth - strNum.length() >= 0) { sb.append(generateZeroString(fixdlenth - strNum.length())); } else { throw new RuntimeException("將數字" + num + "轉化為長度為" + fixdlenth + "的字串發生異常!"); } sb.append(strNum); return sb.toString(); } /** * 將輸入的int整數值補全成為fixedlength長度的字串 * @param length * @return */ public static String toFixdLengthString(int num, int fixdlenth) { StringBuffer sb = new StringBuffer(); String strNum = String.valueOf(num); if (fixdlenth - strNum.length() >= 0) { sb.append(generateZeroString(fixdlenth - strNum.length())); }else { throw new RuntimeException("將數字" + num + "轉化為長度為" + fixdlenth + "的字串發生異常!"); } sb.append(strNum); return sb.toString(); } public static void main(String[] args) { // 產生長度為15的隨機字串(包括字母和數字) System.out.println(generateString(15)); // 產生長度為15的隨機混合字串(不分大小寫,包括字母,不包括數字) System.out.println(generateMixString(15)); // 產生長度為15的隨機小寫字串(包括字母,不包括數字) System.out.println(generateLowerString(15)); // 產生長度為15的隨機大寫字串(包括字母,不包括數字) System.out.println(generateUpperString(15)); // 產生長度為15的 0 串 System.out.println(generateZeroString(15)); // 將輸入的int整數值補全成為fixedlength長度的字串 System.out.println(toFixdLengthString(12351, 15)); // 將輸入的long整數值補全成為fixedlength長度的字串 System.out.println(toFixdLengthString(12351555625555224L, 18)); } } /**執行結果: * OMX29qKB6PoYLpm mohRBXplRXWyqFp xxwstfjtvautbff ZQSYTYXVJHMTTXX 000000000000000 000000000012351 012351555625555224 */