|
1鱼币
- package com.company;
- import java.util.Random;
- public class ClassDemo01 {
- //使用学过知识生成四位验证码 组成:汉字,大小写字母,数字。
- public static void main(String[] args) {
- String str="abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ0123456789";
- Random r=new Random();//创建random 开始准备随机
- String arr[]=new String [4];//创建数组
- String b="";
- for(int i=0;i<4;i++)
- {
- int n=r.nextInt(62);
- arr[i]=str.substring(n,n+1);
- b+=arr[i];
- }
- System.out.print("验证码:"+b);
- }
- }
复制代码 这个我写的重新加点什么东西才能得到四位验证码中有汉字的情况?
本帖最后由 isdkz 于 2022-4-10 20:36 编辑
因为你的随机数超过字符串长度了,改一下就不会超过字符串的长度了
- package com.company;
- import java.util.Random;
- public class ClassDemo01 {
- //使用学过知识生成四位验证码 组成:汉字,大小写字母,数字。
- public static void main(String[] args) {
- String str="去微软推哦怕立刻登机口出现地方呢发范德萨自行车vdfdffdferervdget8784515吧";
- Random r=new Random();//创建random 开始准备随机
- String arr[]=new String [4];//创建数组
- String b="";
- int length = str.length(); // 注意这里
- for(int i=0;i<4;i++)
- {
- int n=r.nextInt(length); // 注意这里
- arr[i]=str.substring(n,n+1);
- b+=arr[i];
- }
- System.out.print("验证码:"+b);
- }
- }
复制代码
|
最佳答案
查看完整内容
因为你的随机数超过字符串长度了,改一下就不会超过字符串的长度了
|