Java 如何生成随机字符串并将其放入哈希表?
我想生成一个随机的唯一字符串并放入哈希表中。我确实喜欢下面的代码,但它不是唯一的,它只是一个字符Java 如何生成随机字符串并将其放入哈希表?,java,random,hashtable,Java,Random,Hashtable,我想生成一个随机的唯一字符串并放入哈希表中。我确实喜欢下面的代码,但它不是唯一的,它只是一个字符 while(k<4){ for(int j=1 ; j<=13 ;j++){ Hashtable<Integer, String> Deck = new Hashtable(); int myChar = (int) (Math.random()*str.length()); StringBuilder sb = n
while(k<4){
for(int j=1 ; j<=13 ;j++){
Hashtable<Integer, String> Deck = new Hashtable();
int myChar = (int) (Math.random()*str.length());
StringBuilder sb = new StringBuilder();
sb.append(str.charAt(myChar));
int i = (int) (Math.random() *52) ;
Deck.put(i, sb.toString());
System.out.print(Deck);
}
System.out.println();
k++;
}
我想成为
{30=dea}{9=egt}{11=brf}{10=dgrtg}{43=grrh}{14=gwrt}.....
尝试使用下面的代码,使用随机方法生成唯一的密钥
private char[] uniqueKeyGenerator(int len) {
String Capital_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String Small_chars = "abcdefghijklmnopqrstuvwxyz";
String numbers = "0123456789";
String values = Capital_chars + Small_chars + numbers;
// Using random method
Random rndm_method = new Random();
char[] password = new char[len];
for (int i = 0; i < len; i++) {
password[i] = values.charAt(rndm_method.nextInt(values.length()));
}
return password;
}
private char[]uniqueKeyGenerator(int len){
字符串大写字母_chars=“ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
字符串小字符=“abcdefghijklmnopqrstuvwxyz”;
字符串编号=“0123456789”;
字符串值=大写字母+小写字母+数字;
//使用随机方法
随机rndm_方法=新随机();
char[]password=新字符[len];
对于(int i=0;i
您可以使用Apache Commons Lang生成字母字符串
String generatedString = RandomStringUtils.randomAlphanumeric(10);
试试这样的
Hashtable<Integer, String> Deck = new Hashtable();
for (int i = 0; i < 10; i++) {
String generatedString = RandomStringUtils.randomAlphanumeric(10);
int key = (int) (Math.random() *52) ;
Deck.put(key, generatedString);
}
System.out.println(Deck);
如果您只需要字母表,请使用RandomStringUtils.randomstringalphalcic(10)代码>随机字符串的安装。随机字母数字(10)
如果您不想要第三方api,那么它就是您的代码片段,并进行了一些更改
while (k < 4) {
for (int j = 1; j <= 13; j++) {
Hashtable<Integer, String> Deck = new Hashtable();
StringBuilder sb = new StringBuilder();
int cnt = 0;
while (cnt++ != 10) {
int myChar = (int) (Math.random() * str.length());
sb.append(str.charAt(myChar));
}
int i = (int) (Math.random() * 52);
Deck.put(i, sb.toString());
System.out.print(Deck);
}
System.out.println();
k++;
}
while(k<4){
对于(int j=1;j,您可以使用下面的代码生成随机字符串
private static final String ALPHA_STRING = "abcdefghijklmnopqrstuvwxyz";
public static String randomString(int count) {
StringBuilder builder = new StringBuilder();
while (count-- != 0) {
int character = (int) (Math.random() * ALPHA_STRING.length());
builder.append(ALPHA_STRING.charAt(character));
}
return builder.toString();
}
public static void main(String[] arg) {
Hashtable<Integer, String> Deck = new Hashtable();
for (int j = 1; j <= 10; j++) {
Deck.put(j, randomString(12));
}
System.out.println(Deck);
}
也许,sb.append(str.charAt(myChar));
您只添加了一个。您可以增加它的长度myChar+支持的任何int。
while (k < 4) {
for (int j = 1; j <= 13; j++) {
Hashtable<Integer, String> Deck = new Hashtable();
StringBuilder sb = new StringBuilder();
int cnt = 0;
while (cnt++ != 10) {
int myChar = (int) (Math.random() * str.length());
sb.append(str.charAt(myChar));
}
int i = (int) (Math.random() * 52);
Deck.put(i, sb.toString());
System.out.print(Deck);
}
System.out.println();
k++;
}
private static final String ALPHA_STRING = "abcdefghijklmnopqrstuvwxyz";
public static String randomString(int count) {
StringBuilder builder = new StringBuilder();
while (count-- != 0) {
int character = (int) (Math.random() * ALPHA_STRING.length());
builder.append(ALPHA_STRING.charAt(character));
}
return builder.toString();
}
public static void main(String[] arg) {
Hashtable<Integer, String> Deck = new Hashtable();
for (int j = 1; j <= 10; j++) {
Deck.put(j, randomString(12));
}
System.out.println(Deck);
}
{10=upjolkfihcyh, 9=irpbrcoclcmx, 8=ppugclscjlja, 7=wtnvkpmocuwd, 6=gpyzppvywazp, 5=vosixtjvcqlg, 4=plwtzzjpzeoq, 3=wsdyyppphhng, 2=knqdzfctfnez, 1=jzakqfiksrho}