2022-02-07

java编程思维训练

案例 验证码

需求

定义一个方法实现随机产生一个5位验证码,
每位可能是数字、大写字母、小写字母。

public class Test3 {
    public static void main(String[] args) {
        //1.定义一个方法返回一个随机验证码:需要返回值类型申明String,需要形参;
        String code = creatCode(5);
        System.out.println("随机验证码为" + code);
    }

    public static String creatCode(int n) {
        //2.定义一个for循环,循环n次一次生成一个随机字符
        String code = "";
        Random r = new Random();
        for (int i = 0; i < n; i++) {
            //3.生成一个随机字符,英文大写、小写、数字
            int type = r.nextInt(3);//0 1 2;
            switch (type) {
                case 0:
                    //大写字符(A 65-Z 65+25)
                    char ch = (char) (r.nextInt(26) + 65);
                    code += ch;
                    break;
                case 1:
                    //小写字符(a 97-z 65+25)
                    char ch1 = (char) (r.nextInt(26) + 97);
                    code += ch1;
                    break;
                case 2:
                    code += r.nextInt(10);
                    break;
            }
        }
        return code;
    }
}
public class StringExec8 {
    public static void main(String[] args) {
        //定义可能出现的字符信息
        String data = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

        //2.循环5次每次生成一个随机的索引,提取对应的字符连接起来即可
        String code = "";
        for (int i = 0; i < 5; i++) {
            Random r =new Random();
            //随机一个索引
            int index = r.nextInt(data.length());
            char c = data.charAt(index);
            code += c;
        }

        //3.输出字符串变量即可
        System.out.println(code);
    }
}

总结

  • 定义了一个String code = “”;这时用code = code + 1将会显示1;但是不可以让code = 1 + 2;这会报错因为一边是int,一边是String;但是可以code=1+2+code;结果为3,+号作用能加就加,不能加就起连接作用,而且这时两边都是String。
  • 第二种方法利用String这个对象里的方法直接生成随机字符,更加简单。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容