实现步骤:

  1. 从控制台输入一个字符串,使用Scanner类实现。
  2. 判断输入的字符串长度是否大于20个字符,如果小于20个字符,提示重新输入。
  3. 从输入的字符串中随机获取5个字符,可以使用Random类和charAt()方法。
  4. 判断随机获取的字符是否重复,如果有重复则重新获取,直到满足不重复的条件。
  5. 将随机获取的5个字符拼接成验证码并输出。

代码实现如下:

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

public class RandomCode {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个长度大于20的字符串:");
        String str = scanner.nextLine();
        while (str.length() <= 20) {
            System.out.print("输入的字符串长度小于等于20,请重新输入:");
            str = scanner.nextLine();
        }
        String code = generateCode(str);
        System.out.println("验证码为:" + code);
    }

    public static String generateCode(String str) {
        Random random = new Random();
        StringBuilder code = new StringBuilder();
        for (int i = 0; i < 5; i++) {
            char c = str.charAt(random.nextInt(str.length()));
            if (code.indexOf(String.valueOf(c)) == -1) {
                code.append(c);
            } else {
                i--;
            }
        }
        return code.toString();
    }
}

运行效果:

请输入一个长度大于20的字符串:This is a test string.
验证码为:ngsTh
1从控制台输入一个字符串大于20个字符2从字符串中随机获取5个字符拼接成一个验证码扩展要求:验证码中不包含重复字符详细java

原文地址: https://www.cveoy.top/t/topic/62Q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录