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

题目


给定一个长度,随机产生一个该长度的字符串,由大写小写字母以及数字组成
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 [email protected]
 */
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);//打印字符串
	}
}



给定一个长度,随机产生一个该长度的字符串,由大写小写字母以及数字组成 Java中随机数的生成_第1张图片

你可能感兴趣的:(Java基础库)