package com.test;import java.util.Random;
import java.util.Scanner;public class Main {/*** 主方法** @param args*/public static void main(String[] args) {Scanner in = new Scanner(System.in);//传入密码长度int len = in.nextInt();//调用密码生成方法System.out.println(makeRandomPassword(len));}/*** 密码随机生成:包含大小写字母、数字、字符** @param len* @return*/public static String makeRandomPassword(int len) {//最小保证大小写字母、数字、字符各有一个if (len < 4) {return "密码长度最小为4!";}//拼接密码StringBuilder sbu = new StringBuilder();//生成随机对象Random rd = new Random();//大写字母字符串String capital = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";//小写字母字符串String letter = "abcdefghijklmnopqrstuvwxyz";//数字字符串String number = "1234567890";//符号字符串String symbol = "~!@#$%^&*()_-+={}[]/?,.\"<>\\|:;\'`";//字符串转数组char charr[] = (capital + letter + number + symbol).toCharArray();//随机抽取for (int i = 0; i < len; i++) {sbu.append(charr[rd.nextInt(charr.length)]);}//存储密码String randomPassword = sbu.toString();//是否有大写字母Boolean b1 = randomPassword.matches(".*[A-Z]{1,}.*");//是否含有小写字母Boolean b2 = randomPassword.matches(".*[a-z]{1,}.*");//是否含有数字Boolean b3 = randomPassword.matches(".*\\d{1,}.*");//是否含有字符Boolean b4 = randomPassword.matches(".*[<>(){}|~!@#$%^&*\\\\.\\'\\\"`_?-]{1,}.*");//条件判断if (b1 & b2 & b3 & b4) {return randomPassword;} else {//不满足则重新调用方法randomPassword = makeRandomPassword(len);System.out.println("=======");}return randomPassword;}
}
详细解决方案
传入密码长度,随机生成密码及检测密码:必须由大写字母、小写字母、数字和特殊符号共同组成
热度:41 发布时间:2024-01-30 12:47:33.0
相关解决方案
- 求密码 正则表达式 要求字符 数目字 特殊符号
- javascript 除去空格 特殊符号 html标签 event事件
- 怎么判断输入的字符串有多少种类型(数字,大,小写字母,特殊符号)
- JSP 特殊符号,该如何处理
- qt 如何输出 特殊符号 如 温度的那个 圈
- phpmyadmin汉语显示数字+小写字母,和普遍的乱码不通
- 在Markdown中输入数学公式、矩阵、特殊符号(持续更新)
- 编写函数,接收一个字符串,分别统计大写字母、小写字母、数字、其他字符的个数,并以元组的形式返回结果。
- 7.10 有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其他字符的个数。
- C语言刷题(29):输入一行文字,找出其中大写字母,小写字母,空格,数字,以及其他字符各有多少?
- XML 特殊符号
- 【Python.基础】特殊符号
- js 正则必须包含6-18位数字、大写字母、小写字母、特殊字符
- 输入一个字符串,分别统计阿拉伯数字,小写字母,大写字母,以及其他字符的个数,并分别用3种字符串格式化方法显示各种字符个数(Python)
- 在XMl文件中,特殊符号 转义
- golang: 密码中允许出现数字、大写字母、小写字母、特殊字符,但至少包含其中2种且长度在8-16之间(四种符号任意满足三种即可)
- Matlab 特殊符号(便于作图等)
- 正则 去除字符串中的 字母、特殊符号、中文
- 习题8.8 输入一行文字,找出其中大写字母、小写字母、空格、数字以及其他字符各有多少
- 传入密码长度,随机生成密码及检测密码:必须由大写字母、小写字母、数字和特殊符号共同组成
- Linux Bash Shell编程(三):重定向、多命令顺序、通配符、特殊符号
- 限制只输入文字和字母,空格,特殊符号,表情都不行
- HTML杂项--特殊符号