给定一个长度,随机产生一个该长度的字符串,由大写小写字母以及数字组成 Java中随机数的生成
程序员文章站
2022-04-03 08:52:58
...
题目
给定一个长度,随机产生一个该长度的字符串,由大写小写字母以及数字组成
Java中随机数的生成(提示:生成int值,并将int值转换成ASCII编码对应一个字符。)
附ASCII编码图
思路:
找到ASCII编码中的0、9、A、Z、a、z的ASCII编码值(分别为48、57、65、90、97、122),用这些值来制约你获取的随机数!见注释详解!
import java.util.Random;
/**
* @author Ziph
* @date 2020年3月5日
* @Email aaa@qq.com
*/
public class TestDemo {
public static void main(String[] args) {
int n = 8;// 给定长度8
char[] c = new char[n];// 创建数组长度为n的数组
Random random = new Random();
for (int i = 0; i < n; i++) {
// 为c[i]数组赋值
int a = random.nextInt(62);
if (a >= 0 && a <= 25) {//获取小写字母a~z的ASCII码
a += 65;//用临界点0、25分别加65等于的便是a、z的ASCII码所代表的的值
} else if (a >= 26 && a <= 51) {//获取大写字母A~Z的ASCII码
a += 71;
} else {//获取0~9的ASCII编码
a -= 4;//你有没有发现上一个elseif的临界值52与随机数61分别减4就是0~9的ASCII码呢
}
c[i] = (char) a;//分别将值强转为char字符型存在数组中,以便后续打印字符串
}
String str = new String(c);//新建字符串对象
System.out.println(str);//打印字符串
}
}
下一篇: 面试题 01.06. 字符串压缩