JAVA随机字符串:随机产生一个该长度的字符串,由大写,小写字母以及数字组成
总结
通过java封装类的特性,将随机数值强制转换成char类型,即可获得大小写字母,从而避免将26个字母一个一个存入数组中再获取的尴尬。
代码
import java.util.Random;
import java.util.Scanner;
/*
* 随机字符串:随机产生一个该长度的字符串,由大写,小写字母以及数字组成
* */
public class RandomStringLUN {
//通过控制台输入数字
Scanner inputNum = new Scanner(System.in);
//随机数生成函数
Random random = new Random();
//判断是否推出循环
boolean flag = false;
//产生随机字符串
public void randomStr(int inNum){
//随机字符串生成
for (int i = 0; i < inNum; i++) {
//0、1、2从中产生一个随机数,进行随机生成小写字母、大写字母、数字。
//int ranNum = random.nextInt(3);
switch (random.nextInt(3)){
case 0:
//生成小写字母
char ranLowLetter = (char) ((random.nextInt(26) + 97));
System.out.print(ranLowLetter);
break;
case 1:
//生成大写字母
char ranUpLetter = (char) ((random.nextInt(26) + 65));
System.out.print(ranUpLetter);
break;
case 2:
//生成数字
int ranNumOut = random.nextInt(10);
System.out.print(ranNumOut);
break;
}
}
}
public void menu(){
do {
System.out.print("输入随机字符串大小:");
int inNum = inputNum.nextInt();
//判断是否数字为零
if (inNum == 0){
System.out.print("字符串大小为零,无需生成!请重新输入:");
inNum = inputNum.nextInt();
}
//判断数字是否小于零
if (inNum < 0){
System.out.print("请输入大于零的数:");
inNum = inputNum.nextInt();
}
//调取水机字符串方法
randomStr(inNum);
//判断是否继续生成
System.out.println();
System.out.print("是否继续生成(继续输入0/退出输入1):");
inNum = inputNum.nextInt();
if (inNum == 0){
flag = true;
}else {
flag = false;
System.out.println();
System.out.println("正在退出……");
}
} while (flag);
}
public static void main(String[] args) {
RandomStringLUN randomStringLUN = new RandomStringLUN();
randomStringLUN.menu();
}
}
运行结果
输入随机字符串大小:0
字符串大小为零,无需生成!请重新输入:-9
请输入大于零的数:0
是否继续生成(继续输入0/退出输入1):0
输入随机字符串大小:8
R9oLpoHu
是否继续生成(继续输入0/退出输入1):1
正在退出……
结语
以上便是本人的知识及见解,如有不对的地方欢迎指正,谢谢!