Java获取验证码

需求:

在登录注册页面中,除了用户名和密码外,通常也会包含验证码。验证码是用来区分用户是计算机还是人,防止恶意破解密码、刷票、灌水等行为。定义方法,获取一个包含4个字符的验证码,每一位字符是随机选择的字母和数字,可包含a-z,A-Z,0-9。

设计思路

查看Random、StringBuilder相关API,完成需求

代码实现1

package com.itheima.APITest.Test02;import java.util.Random;/*在登录注册页面中,除了用户名和密码外,通常也会包含验证码。验证码是用来区分用户是计算机还是人,防止恶意破解密码、刷票、灌水等行为。请查看Random、StringBuilder相关API,定义方法,获取一个包含4个字符的验证码,每一位字符是随机选择的字母和数字,可包含a-z,A-Z,0-9。例如:*/
public class Demo {public static void main(String[] args) {//调用验证码方法String s = getVerificationCode();//输出验证码序列System.out.println(s);}//无参数,有返回值String类型public static String getVerificationCode() {//创建Random对象//public Random​()//创建一个新的随机数生成器。Random r = new Random();//创建StringBuilder对象//public StringBuilder​()//构造一个没有字符的字符串构建器,初始容量为16个字符。StringBuilder sb = new StringBuilder();//public int length​()//返回长度(字符数)。 while (sb.length() < 4) {//public int nextInt​(int bound)//返回伪随机数,从0(包括)和指定值(排除)之间均匀分布的int值,从该随机数生成器的序列中抽取出来。int random = r.nextInt(123);//控制随机数的范围,char类型与int类型比较时,使用的时char类型的ascii码进行比较,总之还是int类型if ((random > 'A' && random < 'Z') || (random > 'a' && random < 'z') || (random > '0' && random < '9')) {//public StringBuilder append​(char c)//将char参数的字符串表示附加到此序列。//用强制类型转换,将random的int值转成char类型sb.append((char) random);}}//public String toString​()//返回表示此顺序中的数据的字符串。String s = sb.toString();//返回一个String类型return s;}
}

代码实现2

package com.itheima.APITest.Test02;import java.util.Random;public class Demo2 {public static void main(String[] args) {//调用获取验证码的方法String s = getVerificationCode();//输出验证码System.out.println(s);}//定义获取验证码的方法,返回值String类型,无参数public static String getVerificationCode() {//创建StringBuilder对象,用于存放所有能获取的字符StringBuilder sb = new StringBuilder();//创建String空字符串,存放获取到的字符串String s = "";//循环获取字符A-Z,拼接到StringBuilder对象中for (char c = 'A'; c < 'Z'; c++) {sb.append(c);}//循环获取字符a-z,拼接到StringBuilder对象for (char c = 'a'; c < 'z'; c++) {sb.append(c);}//循环获取数字0-9,拼接到StringBuilder对象for (int i = 0; i <= 9; i++) {sb.append(i);}//创建Random对象,用来获取随机数Random r = new Random();//循环四次,获取四个字符验证码for (int i = 0; i < 4; i++) {//随机获取StringBuilder对象的索引int index = r.nextInt(sb.length());//public char charAt​(int index)//返回指定索引处的此序列中的char值。//将获取道德char值拼接到String对象中s += sb.charAt(index);}//返回字符串return s;}
}

效果

Java编写程序获取验证码相关推荐

  1. Java编写程序将数据存入Kafka中

    Kafka是一个类似于RabbitMQ的消息系统,它的主要功能是消息的发布和订阅.处理和存储. 1.它类似于一个消息系统,读写流式的数据. 2.编写可扩展的流应用处理程序,用于实时事件响应的场景. 3 ...

  2. 采用JAVA编写程序实现从文件读取操作

    采用JAVA编写程序实现从文件读取操作 代码: import java.io.BufferedReader; import java.io.BufferedWriter; import java.io ...

  3. Java 编写程序打印以下图形_怎么用java编写如下程序在屏幕上输出如下图形 * *** *** * 循环语句做(if语句)...

    怎么用java编写如下程序在屏幕上输出如下图形 * *** ***** ******* ***** ... 4个答案  提问时间: 2011-12-16  22个赞 回答:这个图形对吧? * *** ...

  4. 编写程序获取 vector 容器的第一个元素。分别使用下标 操作符、front 函数以及 begin 函数实现该功能,并提 供空的 vector 容器测试你的程序

    /*********************** 编写程序获取 vector 容器的第一个元素.分别使用下标 操作符.front 函数以及 begin 函数实现该功能,并提 供空的 vector 容器 ...

  5. byfen网java_用java编写程序根据考试成绩的等级打印出百分制分数段

    用java编写程序,根据考试成绩的等级打印出百分制分数段:设A为90分以上,B为80分以上,C为70分以上,D为60分以上,E为59分以下.要求在程序中使用开关语句.上级运行其结果是否符合设计要求: ...

  6. java程序步骤_java编写程序的步骤是什么?java编写程序步骤实例讲解

    写java编程就是一步一步的来,这样才会写好一个编程,之后也才能正常的运行,那么java编写程序的步骤是什么?今天我们就来给大家讲解一下这方面的内容.大家可以参考以下文章! 1.编写源文件 使用文本编 ...

  7. java编写程序实现键盘钢琴,运用键盘事件、鼠标事件

    java编写程序实现键盘钢琴,运用键盘事件.鼠标事件 界面     实现 MouseListener,MouseMotionListener,KeyListener接口,当鼠标进入不同按钮时,会播放不 ...

  8. java编写程序实现求三角形、正方形和圆的面积

    java编写程序实现求三角形.正方形和圆的面积,要求先设计一个公共的父类,在其中·定义求面积的方法,再继承得到各种形状 package practice3; abstract class shape{ ...

  9. Java 编写程序 创建一个游戏【5、6两章的内容】【第5章】

    每次使用单边大脑的时间不要太久, 连续使用左边脑30 分钟如同使用左臂 30 分钟一样, 周期性性地交换让大脑两侧轮流休息. 左脑活动包括了循序渐进的工作,解决逻辑问题与分析: 右脑的活动包括了阴雨. ...

  10. java编写程序上机实验,《Java程序设计》上机实验

    <<Java程序设计>上机实验>由会员分享,可在线阅读,更多相关<<Java程序设计>上机实验(19页珍藏版)>请在技术文库上搜索. 1.tor的安装及 ...

最新文章

  1. 设置elf文件链接库的路径
  2. 使用maven整合SSM框架详细步骤
  3. 99.99%安卓手机存在系统安全漏洞
  4. canvas实现的喜羊羊图像效果
  5. requestparam的作用_Spring MVC:请解释@RequestParam和@ModelAttribute之间的区别
  6. 银河麒麟4安装MySQL8_银河麒麟4.0.2安装教程-电脑系统安装手册
  7. 通用DbContext封装
  8. OpenResty Redis 安装部署测试SET GET功能
  9. 12.这就是搜索引擎:核心技术详解 --- 搜索引擎发展趋势
  10. 考上985能改变命运吗_南开研究生称读研改变命运被嘲讽,网友:本科垃圾,考上985也没用...
  11. 交通灯控制系统的设计
  12. 【C语言】乘法口诀表
  13. 浅谈 渗透测试工程师(黑客) 技能
  14. 这种技术能够替代 Android 原生开发?
  15. java多级继承_java代码继承------多层继承
  16. Detecting Novel Associations in Large Data Sets(检测 大型数据集中的信息关联性,数据相关性)
  17. linux中搭建git与链接github的用法
  18. 如何实现调用阿里云三方的api
  19. 利用动态二进制加密实现新型一句话木马之Java篇(转) 冰蝎
  20. SEO互帮团真诚奉献:一百多个站长论坛!

热门文章

  1. 你好,李焕英;再见,唐探3?
  2. proposal中文翻译_PROPOSAL 是什么意思_ PROPOSAL 的翻译_音标_读音_用法_例句_爱词霸在线词典...
  3. Sentinel-1 GRD数据处理及其在水体信息提取中的应用
  4. 盘点 4 个开源小游戏
  5. 【WPS单元格】汉字转拼音的方法
  6. 微信保存图片提示失败_微信保存图片失败怎么回事
  7. excel2007 设置点击单元格设置默认值
  8. 信息安全-网络安全风险评估技术原理与应用(二)
  9. 围棋大师阿里,产品经理腾讯
  10. 如何在PDF页面中插入图片?