请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);
}
} 展开
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);
}
} 展开
展开全部
就是把随机产生的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
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询