Java基础——(综合练习)生成5位验证码
package com.zhao.test;
import java.util.Random;
public class Test16 {
/*需求:
定义方法实现随机产生一个5位的验证码
验证码格式:
长度为5
前四位是大写字母或者小写字母
最后一位是数字*/
//方法:
//在以后如果我们要在一堆没有什么规律的数据中随机抽取
//可以先把这些数据放到数组当中
//再随机抽取一个索引
public static void main(String[] args) {
//分析:
//1.创建一个数组,将26个大小写字母存入
char[] chars = new char[52];
for (int i = 0; i < chars.length; i++) {
//ASCII码表 数字97强转成char类型为字母a
//添加小写字母
if (i <= 25) {
chars[i] = (char) (97 + i);
}else{ //第27个数据索引为26
//添加大写字母 A---65
//此时i的初始值为26
chars[i]=(char)(65+i-26);
}
}
//2.随机抽取4次
//随机抽取数组中的索引
//定义一个字符串变量,用于记录最终的结果
String result="";
Random random=new Random();
for (int i = 0; i <4 ; i++) {
int randomIndex=random.nextInt(chars.length);
// 利用随机索引获取对应的元素
// System.out.println(chars[randomIndex]);
result=result+chars[randomIndex];
}
//生成最后一位的随机数字0-9
int randomNumber=random.nextInt(10);
//拼接之前的四个字母
result=result+randomNumber;
System.out.println(result);
/*
//遍历
for (int i = 0; i < chars.length; i++) {
System.out.print(chars[i] + " ");
}
*/
}
}
Java基础——(综合练习)生成5位验证码的更多相关文章
- Java基础之随机生成数字和字母
字母与数字的ASCII码 目 前计算机中用得最广泛的 字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information I ...
- Java通过UUID随机生成36位、32位唯一识别码(唯一字符串)
import java.util.UUID; /** * 通过UUID随机生成36位.32位唯一识别码(唯一字符串) * @author [J.H] * */ public class Test { ...
- Java基础-一文搞懂位运算
在日常的Java开发中,位运算使用的不多,使用的更多的是算数运算(+.-.*./.%).关系运算(<.>.<=.>=.==.!=)和逻辑运算(&&.||.!), ...
- time-based基于google key生成6位验证码(google authenticator)
由于公司服务器启用了双因子认证,登录时需要再次输入谷歌身份验证器生成的验证码.而生成验证码是基于固定的算法的,以当前时间为基础,基于每个人的google key去生成一个6位的验证码.也就是说,只要是 ...
- Java基础语法(语法、位运算、JavaDoc等)
一.注释.标识符.关键字 1.注释(comments) 平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己编写的代码,但是当项目结构一旦复杂起来,我们就需要用到注释了! 注释并不会被程序执行, ...
- java基础---->使用Itext生成数据库文档
这里简单的介绍一下使用Itext生成数据库表的文档.于是我们领教了世界是何等凶顽,同时又得知世界也可以变得温存和美好. 生成数据库的文档 一.maven项目需要引入的jar依赖 <depende ...
- Java基础之反射生成JDK动态代理
在Java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口.通过这个类和接口可以生成JDK动态代理类或动态代理对象. JDK动态代理例子: / ...
- Java基础 awt Graphics2D 生成矩形图片并向内写入字符串
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- Java基础 awt Graphics2D 生成矩形图片并向其中画一条直线
JDK :OpenJDK-11 OS :CentOS 7.6.1810 IDE :Eclipse 2019‑03 typesetting :Markdown code ...
- Java 通过Math.random() 生成6位随机数
public static void main(String[] args) { String sjs=""; for (int i = 0; i < 6; i++) { i ...
随机推荐
- Linux Qt编译时出现has modification time int the future的解决方法
问题场景:我在window系统上合并完代码后,将代码通过TF卡拖到了Debian系统的开发板子上(为什么我不用Winscp或者xhttp传呢?因为网线被同事拿走了...),然后就报这个错. 网上查阅资 ...
- 蓝牙mesh组网实践(配网方式的选择)
目录 本测试基于CH582m单片机,尝试进行简单的组网. 沁恒官方EVT中提供了两种配网方式--配网器配网和自配网. ①配网器配网:用一个设备(一块582开发板)作为配网器,也就是沁恒蓝牙mesh软件 ...
- Unity打包xcode修改工程配置代码
1 using System.IO; 2 using UnityEngine; 3 using UnityEditor; 4 using UnityEditor.iOS.Xcode; 5 using ...
- docker指令 —— MySQL一条龙服务
一.拉取MySQL镜像 简单粗暴拉取: docker pull mysql 拉取合适的版本,docker mysql Tag: # 例如拉取8.0.25 docker pull mysql:8.0.2 ...
- 【SSO单点系列】(8):CAS4.0 之整合CMS
一.描术 CMS 是采用shiro来认证的: 过程 1.调用 login.do get方式 来打开登录页面 2.录入用户名密码后调用/login.do的post来提交 并且只能是post提交 Jar ...
- C# 通过程序执行svn更新或提交更改
实现方法: private static void RunBat(string program, string parm) { try { Process proc = new Process(); ...
- centos6.5最小安装不能联网
因为个人需要,在一台笔记本安装centos6.5最小安装时遇到了无法有线联网,后面经过了几个小时的处理 总算理清楚并解决了这个问题.亲测有效而不是转载! 如上图所示 处理这个问题颇有感受,在网上找了很 ...
- 正整数n型方阵
正整数n型方阵(不用数组完成) 一般呢这种n型方阵很多人都是用数组完成,今天呢小编就用简单的循环控制结构来完成,不需用到数组.题目:从键盘输入一个正整数n,根据n形成一个方阵.方阵最外层是第一层,每层 ...
- vuecli创建项目-vue项目目录介绍-es6导入导出语法-小练习登录功能-scoped
目录 vuecli创建项目-vue项目目录介绍-es6导入导出语法-小练习登录功能-scoped 今日内容概要 今日内容详细 1 vue-ci创建项目 2 vue项目目录介绍 3 es6导入导出语法 ...
- ubuntu fastdds安装
0,虚拟机安装: 推荐安装ubuntu 20.ubuntu 22与VMware不兼容,存在无法与主机之间复制粘贴文件的问题. 1.虚拟机镜像下载,下载tdesktop版本: 中科大站点:https:/ ...