当前位置:   article > 正文

Java中随机生成大写字母的方法_java随机产生并输出5个的大写字母.

java随机产生并输出5个的大写字母.

     作者学习Java时间不长,对Java还不是很了解,网上搜索并没有发现Java提供随机生成字母的方法,有网友通过定义一个包含所有字母的办法进行随机字母生成,但这样很费时间。想到通过ASCII表的办法,实现数字与字母的转化,代码如下

  1. import java.util.Arrays;
  2. import java.util.Random;
  3. import java.util.Scanner;
  4. //导入需要的依赖包
  5. public class Test {
  6. public static void main(String[] args) {
  7. Scanner input=new Scanner(System.in);
  8. System.out.println("请输入随机生成大写字母的个数");
  9. int a=input.nextInt();     //接收需要生成字母数量的值
  10. while(a>26 || a<1){        //为了防止重复,所以设定区间为1-26
  11. System.out.println("输入区间有误,重新输入");
  12. a=input.nextInt();
  13. }
  14. int[] arr=new int[a];              //定义一个整型数组,数组长度为输入值
  15. boolean[] flag=new boolean[26];    //定义一个Boolean型数组,用来除去重复值
  16. for(int i=0;i<arr.length;i++){     //通过循环为数组赋值
  17. Random rand=new Random();
  18. int index;
  19. do{
  20. index=rand.nextInt(26);    //随机生成0-25的数字并赋值给index
  21. }while(flag[index]);    //判断flag值是否为true,如果为true则重新为index赋值
  22. arr[i]=index+65;        //大写字母的ASCII值为65-90,所以给index的值加上65,使其符合大写字母的ASCII值区间
  23. flag[index]=true;       //让对应的flag值为true
  24. }
  25. Arrays.sort(arr);//按升序排列数组
  26. for(int n=0;n<arr.length;n++){
  27. System.out.print((char)(arr[n])+"\t");//遍历数组并且将其转为char型
  28. }
  29. }
  30. }

          程序运行结果如上图

      这使用了int型转为char型的想法,首先取值65-90,因为这是ASCII表中大写字母对应的数值,然后将取值转为大写字母,实现随机生成字母。

     但由于字母只有26个,为了防止重复,只能设定区间为1-26。定义的boolean型数组默认值为false,首次生成数字后,对应boolean数组的下标为false,可以通过循环,通过后将其值改为true。假如以后再次生成相同的随机数,则不能通过循环,并为其再次赋值,直到其值为flase,也就是没有出现过的随机数。由此可以实现去除重复值。

    这只是本人的一个简单想法,或许有许多不足的地方,还望大家批评改正。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/238790?site
推荐阅读
相关标签
  

闽ICP备14008679号