Вы можете использовать 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);
1007 Мощн * *
{9=Ut7N87oMNp, 8=7kbARh5WIy, 7=pbU2ZCOGK1, 6=vAGAIw41Us, 5=VLnpY1FAuN, 4=UEIJNIvZlt, 3=z6Y3zXcDY1, 2=PxaMqXl8XW, 1=l72bkPdY6T, 0=FFdOsKpQgd}
Если вы хотите только алфавиты, используйте RandomStringUtils.randomAlphabetic(10);
вместо RandomStringUtils.randomAlphanumeric(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++;
}
Добавлен только цикл loop ...