随机生成长度为len的密码,且包括大写、小写英文字母和数字
一道华三面试题,随机生成长度为len的密码,且包括大写、小写英文字母和数字,主要Random类的使用,random.nextInt(len)表示生成[0,len)整数。具体实现见下面代码,已经很详细了。
package TestProject; import java.util.Random;
import java.util.Scanner;
/**
* 随机生成长度为len的密码,且包括大写、小写英文字母和数字
* @author xuhui
*/
public class Main {
static char[] bigNum = new char[26];
static char[] smallNum = new char[26];
static int[] num = new int[10];
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);//控制台输入
int len = scanner.nextInt();//输入密码长度,保证大于2
String str = "";//密码
init();
Random random = new Random();
//需要先随机生成len长度中,大写字母的个数,小写字母的个数以及数字的个数,且保证每个个数都不能为0
int big_len = random.nextInt(len-2)+1;//random.nextInt(len)表示生成[0,len)整数,表示生成[1,len-1)整数;
int small_len = random.nextInt(len-big_len-1)+1;
int num_len = len-big_len-small_len;
//每一位生成对应的密码
for(int i=0;i<big_len;i++){
str += bigNum[random.nextInt(26)];
}
for(int i=0;i<small_len;i++){
str += smallNum[random.nextInt(26)];
}
for(int i=0;i<num_len;i++){
str += num[random.nextInt(10)];
}
System.out.print(str);//只是生成前面是大写字母-小写字母-数字这样的顺序 }
public static void init(){
for(int i=65;i<=90;i++){//生成大写字母表,对照ASIC表
bigNum[i-65]=(char) i;
}
for(int i=97;i<=122;i++){//生成小写字母表
smallNum[i-97]=(char) i;
}
for(int i=0;i<=9;i++){//生成数字表
num[i]=i;
}
}
}
随机生成长度为len的密码,且包括大写、小写英文字母和数字的更多相关文章
- 请设计 一个密码生成器,要求随机生成4组10位密码(C语言)
请设计 一个密码生成器,要求随机生成4组10位密码(密码只能由字母和数字组成),每一组必须包含至少一个大写字母,每组密码不能相同,输出生成的密码. #include<stdio.h> #i ...
- 【JS】JS校验密码复杂度(必须包含字母、数字、特殊符号)
#场景一:密码中必须包含大小写 字母.数字.特称字符,至少8个字符,最多30个字符: var pwdRegex = new RegExp('(?=.*[0-9])(?=.*[A-Z])(?=.*[a- ...
- java中随机生成字符串的方法(三种)
org.apache.commons.lang(2.6): 链接:https://pan.baidu.com/s/1k_oeA5AjSt6evoR7zT8gpQ 提取码:yhl5 1.生成的字符串每个 ...
- Java基础之随机生成数字和字母
字母与数字的ASCII码 目 前计算机中用得最广泛的 字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information I ...
- 随机生成指定长度的密码之---Random
随机生成指定长度的密码思路: 1.密码中可能包含字母,数字,特殊符号,为了区别分别定义常量 2.随机生成密码,自然想到要用到java.util.Random 类 3.定义一个带两个参数的方法,1跟2, ...
- python 几种方法实现随机生成8位同时包含数字、大写字符、小写字符密码的小程序
python 实现随机生成包8位包含大写字母.小写字母和数字的密码的程序.要求:1用户输入多少次就生成多少条密码,2要求密码必须同时包含大写字母.小写字母和数字,长度8位,不能重复代码如下: impo ...
- Linux下随机生成密码的命令总结
有时候经常为如何设置一个安全.符合密码复杂度的密码而绞尽脑汁,说实话,这实在是一个体力活而且浪费时间,更重要的是设置密码的时候经常纠结.终于有一天实在忍不住了,于是学习.整理了一下如何使用Linux下 ...
- linux随机生成密码
1.mkpassword工具 # 使用最多的密码生成工具 yum -y install expect #需要安装expect工具 mkpasswd -l -d -c -C -s #直接在命令行进行随机 ...
- js生成随机固定长度字符串的简便方法
概述 碰到一个需求:用js生成固定长度的字符串.在网上查了很多资料,网上的方法都比较麻烦.我自己灵光一现,实现了一个比较简单的方法.记录下来,供以后开发时参考,相信对其他人也有用. js生成随机字符串 ...
随机推荐
- (转)利用libcurl和国内著名的两个物联网云端通讯的例程, ubuntu和openwrt下调试成功(四)
1. libcurl 的参考文档如下 CURLOPT_HEADERFUNCTION Pass a pointer to a function that matches the following pr ...
- ASP.NET MVC Model绑定(六)
ASP.NET MVC Model绑定(六) 前言 前面的篇幅对于IValueProvider的使用做个基础的示例讲解,但是没并没有对 IValueProvider类型的实现做详细的介绍,然而MVC框 ...
- 快速Android开发系列网络篇之Volley
Volley是Google推出的一个网络请求库,已经被放到了Android源码中,地址在这里,先看使用方法 RequestQueue mRequestQueue = Volley.newRequest ...
- 背后的故事之 - 快乐的Lambda表达式(二)
快乐的Lambda表达式 上一篇 背后的故事之 - 快乐的Lambda表达式(一)我们由浅入深的分析了一下Lambda表达式.知道了它和委托以及普通方法的区别,并且通过测试对比他们之间的性能,然后我们 ...
- 学会使用Spring注解
概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 ...
- 存在即合理,重复轮子orm java版本
1,业务描述前序? 需求来源于,公司的运营部门.本人所在公司(私营,游戏行业公司),从初创业,我就进入公司,一直致力于服务器核心研发. 公司成立块3年了,前后出产了4款游戏,一直在重复的制造公司游戏对 ...
- LCS记录
如题:求两个序列的最长公共序列.(如:"ABCBDAB"与"BCDB"最长公共序列为"BCDB")代码如下: #define MAX_SIZ ...
- VC程序获取管理员权限
一: 编译程序的时候设置一下 在项目属性--连接器--清单文件--UAC执行级别改为requireAdministrator 二: void GainAdminPrivileges(CString s ...
- facebook充值实时更新接口文档翻译 希望对做facebook充值的小伙伴有帮助
Realtime Updates for Payments are an essential method by which you are informed of changes to orders ...
- Prime Generator
Peter wants to generate some prime numbers for his cryptosystem. Help him! Your task is to generate ...