Java练习题目-给定一个长度,随机产生一个该长度的字符串,由大写,小写字母以及数字组成


给定一个长度,随机产生一个该长度的字符串,由大写,小写字母以及数字组成 

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容