揽一池星河 发表于 2022-4-9 13:26:03

java输出成四位验证码 组成:汉字,大小写字母,数字。

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 ;//创建数组
      String b="";
      for(int i=0;i<4;i++)
      {
            int n=r.nextInt(62);

            arr=str.substring(n,n+1);
            b+=arr;

      }

      System.out.print("验证码:"+b);
    }
}
这个我写的重新加点什么东西才能得到四位验证码中有汉字的情况?

isdkz 发表于 2022-4-9 13:26:04

本帖最后由 isdkz 于 2022-4-10 20:36 编辑

揽一池星河 发表于 2022-4-9 19:10
加了,但是出现问题了欸
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: Stri ...

因为你的随机数超过字符串长度了,改一下就不会超过字符串的长度了

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 ;//创建数组
      String b="";
      int length = str.length();                                 // 注意这里
      for(int i=0;i<4;i++)
      {
            int n=r.nextInt(length);                              // 注意这里

            arr=str.substring(n,n+1);
            b+=arr;

      }

      System.out.print("验证码:"+b);
    }
}

唯有无奈 发表于 2022-4-9 15:45:10

String str = ""这里面加汉字不就好了、、、、、、、、、、、

揽一池星河 发表于 2022-4-9 19:10:12

唯有无奈 发表于 2022-4-9 15:45
String str = ""这里面加汉字不就好了、、、、、、、、、、、

加了,但是出现问题了欸
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 58
        at java.lang.String.substring(String.java:1963)
        at com.company.ClassDemo01.main(ClassDemo01.java:16)

唯有无奈 发表于 2022-4-10 14:41:45

揽一池星河 发表于 2022-4-9 19:10
加了,但是出现问题了欸
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: Stri ...

你怎么加的{:10_245:}不应该报错啊

完熟マンゴー 发表于 2023-7-12 21:41:16

{:10_254:}
页: [1]
查看完整版本: java输出成四位验证码 组成:汉字,大小写字母,数字。