//记录我的“从零开始学Java” #3

今天又写了一个通过生成随机数组来转化为字母进行输出的类,但是发现一个很神奇的现象:

当用户输入的随机数组内元素数量较多时,例如56个元素,此时该数组最终输出的数值和字母表现出来惊人的重复性,甚至是AAA-BBB-CCC这样的结构!

于是我又研究了好久为什么会这样,最后发现。。。
我在输出数组之前对数组进行了Arrays.sort排序。。。。。。这直接导致了输出内容的惊人重复性

果然我写的东西小毛病不断啊(笑
贴出代码,估计这个简单的功能我用了这么多代码来实现也是很苦手了,哈哈哈。

public static void ArraysExercise(){
		Scanner input4 = new Scanner(System.in);//提前已经导入了Scanner,现在直接调用
		System.out.println("输入预期数组内元素数量:");
		int NUM = input4.nextInt();//声明一个变量NUM用于存放用户希望该数组内元素的数量
		int[] AN = new int[NUM];//声明整型数组并定义其长度为变量NUM
		int BN = 0;//声明一个整型变量用于存放循环体内的数值
		for(int i = 0;i<AN.length;++i){//生成随机数并储存的循环
			double ch = (Math.random()) * 26;
			BN = 65 + (int)ch;//该表达式可以保证生成的数值都能够转化为大写字母
			AN[i] = BN;//将随机数储存到数组内
		}
		System.out.println("随机数组为:");
		for(int a = 0;a<AN.length;++a){//遍历输出数组数值的循环
			System.out.print(AN[a] + " ");
		}
		System.out.println(" ");//换行
		System.out.println("随机数组转化的字母为:");
		for(int b = 0;b<AN.length;++b){//将数字转换为字母并输出的循环
			System.out.print((char)AN[b] + " ");
		}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值