JAVA小白入门可以学习的小程序

该小程序主要用到的是Java.uilt.Random类实现如果你认为一个小程序不过瘾,也可以加这个 qq java交流群934623944里面有很多有意思的小游戏等你学习。
Random类位于java.util包下,此类的实例用于生成伪随机数流。Random类中实现的随机算法是伪随机,也就是有规则的随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。(此句来自其他博主,简单的来说Random类就是用来获取随机数的)
Random中用到的方法:
nextInt(int bound)//获取随机数(参数为给予的最大取值范围)
从该随机数生成器的序列绘制。 nextInt的一般合同是指定范围内的int值被伪随机生成并返回。
分析:
验证码:一般由大小写字母与数字,组合生成。
所以我们需要思考如何随机获取这些字母或者数字,这时我们就会想到随机数,但随机数怎么获取字母呢?,那我们学编程这一行必不可少的会了解的ASCII码,我们通过ASCII码可以把特定区域的整型数转换成字符型,再把字符组成字符串就生成了验证码。
ASCII码:
48-57(数字0-9)
65-90(大写字母A-Z)
97-122(小写字母a-z)
其他对应点击:
ASCII码
特别讲解:
nextInt(max - min +1)+min //为获取最小min到最大max的随机数
因nextInt()只能设置最大取值范围(0 ~ (max-1))(即正整数且不能等于最大值)
其中(max - min +1)是为可获得最大值max后面的+min为随机数最小范围(因nextInt()最小值为0)
代码:
package com.softeem.example13;
import java.util.Random;
public class Exp06 {
Random r = new Random();
/**
* 获得数字
* @return
/
public char getNumber() {
int math = r.nextInt(57 - 48 + 1)+48;
//因要进行拼接所以需强转为char类型
return (char)math;
}
/
*
* 获得大写字母
* @return
/
public char getBigChar() {
int math = r.nextInt(90 - 65 + 1)+65;
return (char)math ;
}
/
*
* 获得小写字母
* @return
/
public char getLittleChar() {
int math = r.nextInt(122 - 97 + 1)+ 97;
return (char)math;
}
/
*
* 设置概率,获取字符(数字,大小写字母)
* @return
/
public char getRandomChar() {
int math = r.nextInt(9);
if( math <= 2) {
return getNumber();
}else if( math <= 5){
return getBigChar();
}else {
return getLittleChar();
}
}
/
*
* 获得指定数量的验证码
* @param number
* @return
*/
public String getCode(int number) {
char []c = new char[number];
for (int i = 0; i < number; i++) {
c[i] = getRandomChar();
}
//String类中的构造器可把字符数组转换为字符串
String code = new String©;
return code;
}
public static void main(String[] args) {
Exp06 exp = new Exp06();
System.out.println(exp.getCode(4));
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值