StringBuilder sb = new StringBuilder(); Random rand = new Random(); for (int i = 0;i < 10;++i) sb.append('a'+rand.nextInt(26)); String s = sb.toString();不懂什么是JDK自动生成。
你所说的自动生成数字的方法指的是random()对吧,跟他相对应的自动生成字符的方法是没有的,想要实现的话如下: StringBuilder sb = new StringBuilder(); Random rand = new Random(); for (int i = 0;i < 10;++i) sb.append(((char) ('a' + rand.nextInt(26)))); String s = sb.toString(); 要用大写字符的话,如下StringBuilder sb = new StringBuilder(); Random rand = new Random(); for (int i = 0;i < 10;++i) sb.append(((char) ('A' + rand.nextInt(26)))); String s = sb.toString();
public class RandomTester { public static void main(String[] args) { char[] output = new char[10]; Random rand = new Random(); for (int i = 0; i < output.length; i++) { int number = rand.nextInt(26); output[i] = (char) ((number % 2 == 0 ? 'a' : 'A') + number); } System.out.println(output); } }
然后生成52以内的随机数,比如2, 那么得到b,
依次类推。
好像可以做到你说的要求。
Random rand = new Random();
for (int i = 0;i < 10;++i)
sb.append('a'+rand.nextInt(26));
String s = sb.toString();不懂什么是JDK自动生成。
如果要求没那么高,楼主创建一个数组,放入所有的字母,然后随机产生0-46的数字,作为从数组里取得字符的索引,循环十次,拼接组成一个字符串,如果,要求多变,小写和大写字母分开两个数组,随机从两个数组取,
StringBuilder sb = new StringBuilder();
Random rand = new Random();
for (int i = 0;i < 10;++i)
sb.append(((char) ('a' + rand.nextInt(26))));
String s = sb.toString();
要用大写字符的话,如下StringBuilder sb = new StringBuilder();
Random rand = new Random();
for (int i = 0;i < 10;++i)
sb.append(((char) ('A' + rand.nextInt(26))));
String s = sb.toString();
public static void main(String[] args) {
char[] output = new char[10];
Random rand = new Random();
for (int i = 0; i < output.length; i++) {
int number = rand.nextInt(26);
output[i] = (char) ((number % 2 == 0 ? 'a' : 'A') + number);
} System.out.println(output);
}
}