使用类型转换生成六位验证字符,实现用户输入验证码的功能
2017-10-07 17:56 轻风飞扬 阅读(674) 评论(0) 编辑 收藏 举报1. 程序设计思想
先用Math.random()函数产生0~1之间的随机数,然后用int intVal = (int)(Math.random() * 26 + 97)使数的范围扩大到97~122,这样就包括了从a~z所有的字母了,用6次循环输出6个字母,然后将其转化为字母,用result存储,输出result,再要求用户输入验证码,如果输入的验证码正确,则输出"验证码正确",否则输出"验证码错误,请重新输入"。
2. 程序流程图
3.源代码
package demo;
import java.util.Scanner;
public class RandomStr
{
public static void main(String[] args)
{
//定义一个空字符串
String result = "";
//进行6次循环
for(int i = 0 ; i < 6 ; i ++)
{
//生成一个97~122的int型的整数
int intVal = (int)(Math.random() * 26 + 97);
//将intValue强制转换为char后连接到result后面
result = result + (char)intVal;
}
System.out.println(result);
System.out.println("请输入验证码:");
Scanner scan=new Scanner(System.in);
String shuru=scan.next();
if(shuru.equals(result)==true)
{System.out.println("验证码正确");}
else
System.out.println("验证码错误,请重新输入");
}
}
4.实验结果截图
5.实验总结
该程序中非常重要的就是随机数的产生,先用Math.random()函数产生0~1之间的随机数,然后用int intVal = (int)(Math.random() * 26 + 97)使数的范围扩大到97~122,这样就包括了从a~z所有的字母了,这个非常巧妙的运用。出现的错误就是输入字符串的时候,不会输入,经过查询后解决,还有java中判断两个数是否正确不能简单的用等于号,要用equal函数,否则不管输入什么,输出的都是 一样的,没有判断的过程。