How can I generate random strings in java?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How to generate a random alpha-numeric string in Java
我想写一个按指定长度构建随机字符串的代码。怎么办呢?
下面是生成两种类型字符串的示例。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import java.security.SecureRandom; import java.math.BigInteger; public final class SessionIdentifierGenerator { private SecureRandom random = new SecureRandom(); public String nextSessionId() { return new BigInteger(130, random).toString(32); } } |
输出:ponhbh78cqjahls5flbdf4dlu4
参考这里
输出:281211F4-C1D7-457A-9758-555041A5FF97
参考这里
好吧,首先编写一个函数,它将为您提供一个满足您需求的随机字符,然后根据所需的长度将其包装在一个
下面的程序给出了一种实现这一点的方法,即使用一个常量字符池和一个随机数生成器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import java.util.Random; public class testprog { private static final char[] pool = { 'a','b','c','d','e','f','g', 'h','i','j','k','l','m','n', 'o','p','q','r','s','t','u', 'v','w','x','y','z'}; private Random rnd; public testprog () { rnd = new Random(); } public char getChar() { return pool[rnd.nextInt(pool.length)]; } public String getStr(int sz) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < sz; i++) sb.append(getChar()); return new String(sb); } public static void main(String[] args) { testprog tp = new testprog (); for (int i = 0; i < 10; i++) System.out.println (tp.getStr(i+5)); } } |
在一次特别的跑步中,我得到了:
1 2 3 4 5 6 7 8 9 10 | hgtbf xismun cfdnazi cmpczbal vhhxwjzbx gfjxgihqhh yjgiwnftcnv ognwcvjucdnm hxiyqjyfkqenq jwmncfsrynuwed |
现在,如果您想从不同的字符集调整字符池,甚至可以通过更改它们在数组中出现的频率(例如,
但对于你想做的事情来说,这应该是一个好的开始。