在业务开发过程中经常遇到生成随机字符串,用于密钥、密码、口令或其他标识使用。

下面就介绍一下通过Java程序生成这些随机字符串的方法。

1. 随机生成n位由字母或数字组成的字符串

public static String getRandomCharacterAndNumber(int length) {

String val = "";

Random random = new Random();

for (int i = 0; i < length; i++) {

String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; // 输出字母还是数字

if ("char".equalsIgnoreCase(charOrNum)) // 字符串

{

int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; // 取得大写字母还是小写字母

val += (char) (choice + random.nextInt(26));

// int choice = 97; // 指定字符串为小写字母

val += (char) (choice + random.nextInt(26));

} else if ("num".equalsIgnoreCase(charOrNum)) // 数字

{

val += String.valueOf(random.nextInt(10));

}

}

return val;

}

2. 结果校验

public static boolean isRandomUsable(String str) {

String regExp = "^[0-9a-zA-Z]{6}$";

Pattern pat = Pattern.compile(regExp);

Matcher mat = pat.matcher(str);

return mat.matches();

}

3. 测试代码

public static void main(String[] args) {

for (int i = 0; i < 20; i++) {

String str = getRandomCharacterAndNumber(6);

System.out.println(str);

System.out.println(isRandomUsable(str));

}

}

java 随机字母数字_Java生成字母和数字组成的随机字符串相关推荐

  1. java字母反过来_java之字母反转~~ - Plight - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    字符串的反转输出 这也是面试题中常考的一道.我们就以一个包含了全部26个英文字母,同时又具有完整含义的最短句子作为例子来完成解答.先来看一下这个句子: 引用 A quick brown fox jum ...

  2. java产生字符函数_java生成字符串md5函数类(javaSE)

    //实现生成MD5值 import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.B ...

  3. java 正则表达式匹配数字_java正则表达式匹配所有数字的案例

    用于匹配的正则表达式为 :([1-9]\d*\.?\d*)|(0\.\d*[1-9]) ( [1-9] :匹配1~9的数字: \d :匹配数字,包括0~9: * :紧跟在 \d 之后,表明可以匹配零个 ...

  4. java随机产生字母排序_Java生成含字母和数字的6位随机字符串

    本文实例为大家分享了Java生成6位随机字符串的实现代码,具体内容如下 package com.amos.tools; import java.util.ArrayList; import java. ...

  5. java 数字 字母 中文_java中英文字母、数字、中文所占字节数

    先了解下基本的单位: 1.比特(bit)即一个二进制位,例如100011就是6比特. 2.字节(byte),这是计算机中数据类型最基本的单位了,8bit组成1byte. java要确定每种基本类型所占 ...

  6. java 字母个数字_Java 中字母对应的数字是多少

    展开全部 for(int i = 0;i<255;i++){char a = (char) i;System.out.println(a+"........."+i);},这 ...

  7. java 获得唯一 数字_java生成唯一数字

    java生成唯一数字 用UUID类生成唯一标识的时候,会生成一个十六进制的整数,但是不能作为数据库long型字段的唯一标识,用下面的办法可以实现数据库long型标识的生成: public class ...

  8. java 输出字母图形_java打印字母菱形,怎么打!!!

    哈哈!终于明白怎么打出字母菱形了.下面是代码请高手指点一二,呵呵!charstart='A';//开始的字符System.out.print("请输入三角形的行高:");intnu ...

  9. java生成8位自增编号_Java生成8位数字按照从0开始到自己设置循环好多次

    展开全部 建议使用java8的新特性 stream很快就能生成 示例代码如下int cycleTimes = 1000; int numLength = 8; Stream.iterate(1,ite ...

最新文章

  1. 找到反例!博士后数学家推翻困扰数学界80多年的单位猜想
  2. linux screen 配置
  3. PostgreSql入门命令
  4. maven项目,如何导入本地jar包
  5. VS Code 1.37 发布,多个图标迎来全新设计
  6. C++实现系统性能检测工具
  7. 【渗透测试】—如何利用文件包含的方式进行攻击
  8. 检查Linux服务器性能的关键十条命令
  9. 在cmakelists和makefile中设置opencv
  10. hibernate教程笔记1
  11. Unity3D(四)Camera和SkyBox
  12. MKVToolNix v72.0 MKV视频封装工具
  13. Python实现层次分析法
  14. 怎么使用虚拟机装服务器系统,如果使用VMware虚拟机创建系统,超详细安装图文教程...
  15. Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤
  16. php 没有读取权限能不能复制,“需要提供管理员权限才能复制此文件夹”怎么办...
  17. velocity模板大小写转换
  18. 玩玩Simulink——直流电机仿真
  19. Android Studio 4.1没有GsonFormat插件
  20. 无监督学习 聚类分析②

热门文章

  1. 基于机器视觉的多机械臂煤矸石分拣机器人系统研究
  2. iPhone 6/Plus/5s/三星S5谁的屏幕更好?
  3. 蓝桥杯 砝码称重【第十二届】【动态规划】以及一些总结
  4. 微信openid绑定java,微信公众号支付(一)如何获取用户openId
  5. 浏览器2014官方下载
  6. @EnableConfigurationProperties 进行注册
  7. 2019年个人成长总结
  8. 读张宏杰著《曾国藩传》
  9. 《江城子·乙卯正月二十日夜记梦》古词鉴赏
  10. cocos 合成大西瓜思路