• 随机生成指定位数的字母数字组合的账号或密码


    1.封装一个实体类或方法

    1. package com.wt.controller;
    2. import java.util.Random;
    3. /**
    4. * @Author wt
    5. * @Date 2022/9/6 19:12
    6. * @PackageName:com.wt.controller
    7. * @ClassName: xx
    8. * @Description: TODO
    9. * @Version 1.0
    10. */
    11. public class Factory {
    12. //生成随机用户名,数字和字母组成,
    13. public static String getRandomCharacters(int length) {
    14. String val = "";
    15. Random random = new Random();
    16. //参数length,表示生成几位随机数
    17. for (int i = 0; i < length; i++) {
    18. String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
    19. //输出字母还是数字
    20. if ("char".equalsIgnoreCase(charOrNum)) {
    21. //输出是大写字母还是小写字母
    22. int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
    23. val += (char) (random.nextInt(26) + temp);
    24. } else if ("num".equalsIgnoreCase(charOrNum)) {
    25. val += String.valueOf(random.nextInt(10));
    26. }
    27. }
    28. return val;
    29. }
    30. }

    2.通过类名调用该方法----此处生成的账号密码是英文大小加数字写混合的

    1. public class Test01 {
    2. public static void main(String[] args) {
    3. //通过类名调用封装好的随机生成方法---随机生成账号、密码、盐
    4. String username = Factory.getRandomCharacters(8);
    5. String password = Factory.getRandomCharacters(8);
    6. String salt = Factory.getRandomCharacters(3);
    7. System.out.println(username);
    8. System.out.println(password);
    9. System.out.println(salt);
    10. }
    11. }

    3.将所有的字母转为大写字母或小写字母---非字母不受影响

    在生成的账号密码和盐后加

    大写字母转小写:  .toLowerCase(Locale.ROOT)        |       .toLowerCase()

    小写字母转大写:     toUpperCase(Locale.ROOT)         |        toUpperCase() 

             

    1. public class Test01 {
    2. public static void main(String[] args) {
    3. //在生成的账号密码和盐后加.toLowerCase(Locale.ROOT)
    4. String username = Factory.getRandomCharacters(8);
    5. String password = Factory.getRandomCharacters(8);
    6. String salt = Factory.getRandomCharacters(3);
    7. String addr = Factory.getRandomCharacters(5);
    8. //将所有的字母都变为小写字母----非字母不受影响
    9. System.out.println(username.toLowerCase(Locale.ROOT));
    10. System.out.println(password.toLowerCase());
    11. //将所有的字母都变为大写字母----非字母不受影响
    12. System.out.println(salt.toUpperCase(Locale.ROOT));
    13. System.out.println(addr.toUpperCase());
    14. }
    15. }

  • 相关阅读:
    Go 语言为什么不支持并发读写 map?
    【MySQL】多表查询
    Chapter4 利用机器学习解决分类和回归问题
    【无标题】
    arm-linux 自旋锁
    Docker的数据管理
    UOS Deepin Linux 安装 anaconda
    深眸科技自研轻辙视觉引擎,以AI机器视觉赋能杆号牌识别与分拣
    神经网络算法和人工智能,人工智能神经网络技术
    极狐(GitLab) 马景贺:DevSecOps落地实践的挑战与应对之道
  • 原文地址:https://blog.csdn.net/weixin_56028042/article/details/126734917