package com.dy.pipIrrApp.util; import java.security.SecureRandom; import java.util.HashMap; import java.util.Map; import java.util.Random; /** * @author ZhuBaoMin * @date 2024-09-11 15:48 * @LastEditTime 2024-09-11 15:48 * @Description */ public class CaptchaUtil { /** * 生成数学文本算式,例如1+1=? * @param a 数字 * @param b 数字 * @return 字符 */ public static Map mathTextCreator(int a, int b) { Random random = new SecureRandom(); // 生成随机操作,操作范围:[0,4),分别表示: + - * / int op = random.nextInt(4); // 定义计算的结果 Integer result = 0; // 定义构建的算式字符串 StringBuilder resultString = new StringBuilder(); // 运算符:- if (1 == op) { if (a >= b) { result = a - b; resultString.append(a).append("-").append(b).append("=?@").append(result); } else { result = b - a; resultString.append(b).append("-").append(a).append("=?@").append(result); } } // 运算符:* else if (2 == op) { result = a * b; resultString.append(a).append("*").append(b).append("=?@").append(result); } // 运算符:/ else if (3 == op) { if (a != 0 && b % a == 0) { result = b / a; resultString.append(b).append("/").append(a).append("=?@").append(result); } else if (b != 0 && a % b == 0) { result = a / b; resultString.append(a).append("/").append(b).append("=?@").append(result); } else { return mathTextCreator(a, b); } } // 运算符:+ else { result = b + a; resultString.append(a).append("+").append(b).append("=?@").append(result); } Map ret = new HashMap(); ret.put("resultCode", result.toString()); ret.put("resultString", resultString.toString()); return ret; } }