生成验证码

描述

用户输入一个数字,生成n位验证码。包括大小写、数字

卡住

我写到这里卡住了,我是想随机生成三个数,对应case,对应小写大写数字,但是我觉得好麻烦,然后看了一下老师的。就是这么写的
在这里插入图片描述

问题

只有数字

根据一下代码,显示的只有数字。也就是说,在ASCII码转换时出错
在这里插入图片描述
在这里插入图片描述
我本来以为是字符转换有问题,但是和老师的是一样的。那就只能是 最开始的时候只能访问数字,
就是说 每一位新的验证码都应该对应一个随机数,那么就应该把生成的随机数放入循环

成功

在这里插入图片描述

代码

package com.zhang;

import java.util.Random;
import java.util.Scanner;

/*
生成验证码 输入位数,随机产生n位,包括大小写,数字
 */
public class Test2 {

    public static void main(String[] args) {
        System.out.println("请输入要产生几位验证码:");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String rs = check(n);
    }

    public static String check(int n){
        Random r = new Random();
        String rs = "";
       //System.out.println(a);

        for (int i = 1;i <= n;i++){
            int a = r.nextInt(3);

            switch (a){
                case 0:
                    int num = r.nextInt(9);
                    rs += num;
                    break;
                case 1:
                    int lowernum = 97+r.nextInt(26);
                    char lower = (char) lowernum;
                    rs += lower;
                    break;
                case 2:
                    int capitalnum = 64 + r.nextInt(26);
                    char capital = (char)capitalnum;
                    rs += capital;
                    break;
            }
        }
        System.out.println(rs);
        return rs;
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值