欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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


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