给定一个长度,随机产生一个该长度的字符串,由大写,小写字母以及数字组成
Java中随机数的生成:
java.util.Random r = new java.util.Random();
int a = r.nexInt(100); a 0-99的随机数
这里有多种做法
第一种 StringBuilder
```
public class Demo11{
public static void main(String[] args) {
System.out.println("请输入长度");
print(randomStr(new Scanner(System.in).nextInt()));
}
public static StringBuilder randomStr(int len) {
// 存储
StringBuilder sBuilder1 = new StringBuilder();
if(len <= 0) {
return sBuilder1;
}
// 思路: 使用StringBuilder将a-zA-Z0-9装起,再用随机数
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("abcdefghijklmnopqrstuvwxyz0123456789");
// 创建随机数类对象
Random random = new Random();
// 使用整形随机数
for (int i = 0; i < len; i++) {
char schar = sBuilder.charAt(random.nextInt(sBuilder.length()));
sBuilder1.append(schar);
}
return sBuilder1;
}
public static void print(StringBuilder stringBuilder) {
System.out.println(stringBuilder);
}
}
```
这种做法利用到了StringBuilder的特性
第二种做法:
```
public static void randomStr2(int len) {
// 存储
StringBuilder sBuilder1 = new StringBuilder();
//Math.random()* //0 - 1
int a = (int) ( Math.random () * 3 );// 生成0 - 3的随机数也就是 0,1,2
for (int i = 0; i < len; i++) {
if(a == 0) {
// 0-9 数字 48-57
char str = ((char)(Math.random()*10+48));
System.out.println(str);
sBuilder1.append(str);
}else if(a == 1) {
// a-z 97-122
char str = ((char)(Math.random()*26+97)); //91
sBuilder1.append(str);
}else if(a == 2) {
// A-Z 65-90
char str = ((char)(Math.random()*26+65)); //91
sBuilder1.append(str);
}
}
System.out.println(sBuilder1);
}
```
分别利用 ASCLL码值 对应的 a-z A-Z 0-9