Random的nextInt()用法「建议收藏」

Random的nextInt()用法「建议收藏」Random的nextInt()用法一、先看这样一个有趣的题目:1、设计一个密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码。2、分别以1、2、3作为种子数创建Random对象,生成六位随机密码进行测试。问题答案核心代码如下:importjava.util.Random;importjava.util.Scanner;publicclassRandomT…

大家好,又见面了,我是你们的朋友全栈君。

Random的nextInt()用法

一、先看这样一个有趣的题目:

1、设计一个密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码。

2、分别以1、2、3作为种子数创建Random对象,生成六位随机密码进行测试。

问题答案核心代码如下:

import java.util.Random;
import java.util.Scanner;
public class RandomTest {

public static void main(String[] args) {

	// 定义一个字符型数组用来存放密码数据随机取值的内容
	
	char[] pardStore = new char[62];
	
	// 把所有的大写字母放进去 
	
    char beg = 'A';
    
	for(int i=0;i<=25;i++)
	
    {
    
    	pardStore[i]=beg;
    	
        beg=(char)(beg+1);//因为相加所以数据类型会自动转换为int型,所以要强制转换为char型不然不匹配
        
    }
    
    // 把所有的小写字母放进去
    
    char beg1 = 'a';
    
    for(int i=26;i<=51;i++)
    
    {
    
    	pardStore[i]=beg1;
    	
        beg1=(char)(beg1+1);
        
    }
    
    // 把0到9放进去
    
    char beg2 = '0';
    
    for(int i=52;i<=61;i++)
    
    {
    
    	pardStore[i]=beg2;
    	
        beg2=(char)(beg2+1);
        
    }
    
	// 分别以1、2、3作为种子数 生成6位随机密码
	
	Scanner sc = new Scanner(System.in);
	
	int seed = sc.nextInt();//到时候seed等同于输入的数字1,2,3作为种子数
	
	Random  random = new Random(seed);
	
    for(int i=1 ; i<=6;i++)
    
    {
    	int n =random.nextInt(62);//随机生成一个整数,这个整数的范围就是[0,62)
        System.out.print(pardStore[n]);
    }
    
}

}

二、nextInt()用法总结和思考

1、nextInt()用法:

会随机生成一个整数,这个整数的范围就是int类型的范围-2^31 ~ 2^31-1,但是如果在nextInt()括号中加入一个整数a那么,这个随机生成的随机数范围就变成[0,a)。

2、在题目给定数组时如何运用nextInt():

上面提出的有趣题目是给定我们一个数组并且用来存放密码的组成元素,在这种给定我们已知的密码组成范围以及用数组来包括并且非同一组成的连续数据时,我们可以借鉴上面的问题答案代码
for(int i=1 ; i<=6;i++)//六位数密码所以循环输出六次
{
int n =random.nextInt(62);//随机生成一个整数,这个整数的范围就是[0,62)
System.out.print(pardStore[n]);//每次生成的整数n用pardStore[n]来代表一个数组中的数据
}

3、多多练习,灵活变动!

还有很多内容需要不断练习才能真正掌握,所以要多看多学多练~

各位看官看完之后有什么好的建议欢迎提出,一起讨论交流共同进步嘛!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162888.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Kali 安装详细步骤

    Kali 安装详细步骤本文主要详细介绍kali的安装过程,以及安装完成后的基本设置,比如安装增强工具,安装中文输入法以及更新升级等操作。

    2022年4月30日
    93
  • phpspreadsheet 读取 Excel 表格问题

    phpspreadsheet 读取 Excel 表格问题要读取大量数据,需要ReadFilter,指定读取范围,下面是我的ReadFilter类<?phpnamespacecommon\models;classMyExcelReadFilterimplements\PhpOffice\PhpSpreadsheet\Reader\IReadFilter{private$startRowNo;//如1private$endRowNo;//如1000private$

    2022年9月17日
    3
  • Centos 7配置LAMP「建议收藏」

    Centos 7配置LAMP「建议收藏」LAMP指的Linux(操作系统)、ApacheHTTP服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP…

    2022年5月3日
    90
  • 语音检测_自适应遗传算法

    语音检测_自适应遗传算法自适应回声消除算法欢迎留言交流AEC算法早期用在Voip,电话这些场景中,自从智能设备诞生后,智能语音设备也要消除自身的音源,这些音源包括音乐或者TTS机器合成声音。本文基于开源算法阐述AEC的原理和实现,基于WebRTC和speex两种算法,文末会附上两种算法的matlab实现。回声消除原理回声消除的基本原理是使用一个自适应滤波器对未知的回声信道:ω\omega进行参数辨识,根据扬声器信号与产

    2025年8月22日
    1
  • django修改数据_模型

    django修改数据_模型前言在ORM框架中,所有模型相关的操作,比如添加/删除等。其实都是映射到数据库中一条数据的操作。因此模型操作也就是数据库表中数据的操作。添加一个模型到数据库中:添加模型到数据库中。首先需要创建一

    2022年7月30日
    10
  • c语言 数组存放规则,C语言数组详解

    c语言 数组存放规则,C语言数组详解数组在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。数组类型说明在C语言中使…

    2022年7月27日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号