请java中的解释一段随机生成字母+数字的代码

【请高手解释下下面的几段代码有什么作用,相加得到的数字有什么作用?inta=random.nextInt(62);if(a>=0&&a<=25){a+=65;}elsei... 【请高手解释下下面的几段代码有什么作用,相加得到的数字有什么作用?
int a = random.nextInt(62);
if (a >= 0 && a <= 25) {
a += 65;
} else if (a > 25 && a <= 51) {
a += 71;// 97 - 26 = 71
} else {
a -= 4;// 52-48 = 4
}

----------------------以下是完整代码----------------------------
import java.util.Scanner;
import java.util.Random;

public class HomeWork_022 {

public static void main(String[] args) {
System.out.print("请输入一个长度:");
Scanner s = new Scanner(System.in);
int n = s.nextInt();
char[] cs = new char[n];

Random random = new Random();
for (int i = 0; i < n; i++) {
int a = random.nextInt(62);
if (a >= 0 && a <= 25) {
a += 65;
} else if (a > 25 && a <= 51) {
a += 71;// 97 - 26 = 71
} else {
a -= 4;// 52-48 = 4
}
cs[i] = (char) a;
}
show(cs);
}

public static void show(Object obj) {
System.out.print(obj);
}

}
展开
 我来答
到处喷人
2017-12-02 · TA获得超过1646个赞
知道小有建树答主
回答量:566
采纳率:66%
帮助的人:251万
展开全部
就是把随机产生的int转成大小写字母和数字对应的ascii码,因为大,小写字母和数字的ascii码不是连续的,所以要分别考虑。 asc('0') = 48, asc('A') = 65, asc('a') = 97
追问
但是我看不到它那些计算出来的值,限制ascii码的范围?   
这里的52和4 又是什么? 这里的51是什么?
int a = random.nextInt(62);
if (a >= 0 && a 25 && a <= 51) {
a += 71;// 97 - 26 = 71 //这里得到小写
} else {
a -= 4;// 52-48 = 4
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式