生成随机数

    xiaoxiao2026-03-26  16

    package com.mvc.util; import java.util.Random; public class RadomUtil { public static String random(int n) { if (n < 1 || n > 10) { throw new IllegalArgumentException("cannot random " + n + " bit number"); } Random ran = new Random(); if (n == 1) { return String.valueOf(ran.nextInt(10)); } int bitField = 0; char[] chs = new char[n]; for (int i = 0; i < n; i++) { while (true) { int k = ran.nextInt(10); if ((bitField & (1 << k)) == 0) { bitField |= 1 << k; chs[i] = (char) (k + '0'); break; } } } return new String(chs); } /** * 测试 * @param args */ public static void main(String[] args) { System.out.println(random(10)); } }

    方法二:

    package com.ucf.gateway.bankgw.bank.zy.Utils; import java.util.HashMap; import java.util.Map; import java.util.Random; import com.alibaba.fastjson.JSONObject; import com.ucf.platform.framework.core.util.SensitiveInfoUtils; public class StringRandom { private static final int LENGTH=30; //生成多少位随机数 /** * * @Description: 生成随机数字和字母, * @author: GuXiYang * @date: 2015-11-17 下午3:06:36 * @return 30位随机数 */ public static String getStringRandom() { String val = ""; Random random = new Random(); //参数length,表示生成几位随机数 for(int i = 0; i < LENGTH; i++) { String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; //输出字母还是数字 if( "char".equalsIgnoreCase(charOrNum) ) { //输出是大写字母还是小写字母 int temp = random.nextInt(2) % 2 == 0 ? 65 : 97; val += (char)(random.nextInt(26) + temp); } else if( "num".equalsIgnoreCase(charOrNum) ) { val += String.valueOf(random.nextInt(10)); } } return val; } // public static void main(String[] args) { // System.out.println(StringRandom.getStringRandom()); // } }

    转载请注明原文地址: https://ju.6miu.com/read-1308192.html
    最新回复(0)