package com.shuqian.tools;import java.util.Random;/** * Random随机数相关工具类 */public class RdTools { public static void main(String[] args) { String str = ""; for(int i=0;i<100;i++){ //str = gtEx(); //随机表达式 str = gtZs(); //整数表达式 str = str.replaceAll(".0",""); System.out.println("["+i+"][表达式] "+str); } } /** 递归获取整数 */ public static String gtZs(){ String str = gtEx(); if(".0".equals(str.substring(str.length()-2))){ return str; }else{ System.out.println("[递归] "+str); return gtZs(); } } /** 获取3个随机数(1-9),进行随机加减乘数运行(+、-、*、/),返回整数运算结果的表达式 */ public static String gtEx(){ String str = gtRdNum()+gtRdEx()+gtRdNum()+gtRdEx()+gtRdNum(); double ts = 0.00; //优先计算乘除(第一个运算符) if("*".equals(str.substring(1,2)) || "/".equals(str.substring(1,2))){ if("*".equals(str.substring(1,2))){ ts = Integer.parseInt(str.substring(0,1))*Integer.parseInt(str.substring(2,3)); }else{ ts = Integer.parseInt(str.substring(0,1))/Integer.parseInt(str.substring(2,3)); } //第二个运算符 if("+".equals(str.substring(3,4))){ ts = ts+Integer.parseInt(str.substring(4,5)); }else if("-".equals(str.substring(3,4))){ ts = ts-Integer.parseInt(str.substring(4,5)); }else if("*".equals(str.substring(3,4))){ ts = ts*Integer.parseInt(str.substring(4,5)); }else if("/".equals(str.substring(3,4))){ ts = ts/Integer.parseInt(str.substring(4,5)); } }else{ //优先计算乘除(第二个运算符) if("*".equals(str.substring(3,4)) || "/".equals(str.substring(3,4))){ if("*".equals(str.substring(3,4))){ ts = Integer.parseInt(str.substring(2,3))*Integer.parseInt(str.substring(4,5)); }else{ ts = Integer.parseInt(str.substring(2,3))/Integer.parseInt(str.substring(4,5)); } //第二个运算符 if("+".equals(str.substring(1,2))){ ts = Integer.parseInt(str.substring(0,1))+ts; }else if("-".equals(str.substring(1,2))){ ts = Integer.parseInt(str.substring(0,1))-ts; }else if("*".equals(str.substring(1,2))){ ts = Integer.parseInt(str.substring(0,1))*ts; }else if("/".equals(str.substring(1,2))){ ts = Integer.parseInt(str.substring(0,1))/ts; } }else{ //第一个运算符 if("+".equals(str.substring(1,2))){ ts = Integer.parseInt(str.substring(0,1))+Integer.parseInt(str.substring(2,3)); }else{ ts = Integer.parseInt(str.substring(0,1))-Integer.parseInt(str.substring(2,3)); } //第二个运算符 if("+".equals(str.substring(3,4))){ ts = ts+Integer.parseInt(str.substring(4,5)); }else{ ts = ts-Integer.parseInt(str.substring(4,5)); } } } return str+"="+ts; } static Random rd = new Random(); /** 产生1-9之间随机数 */ public static int gtRdNum(){ return rd.nextInt(9)+1; //(0-9内)+1 变相的变成了 1-10内 } /** 产生(+、-、*、/)之间随机运算符 */ public static String gtRdEx(){ int ex = rd.nextInt(4); // 0+、1-、2*、3/ if(ex == 0){ return "+";} if(ex == 1){ return "-";} if(ex == 2){ return "*";} if(ex == 3){ return "/";} return ""; }}
[0][表达式] 9*5*1=45
[1][表达式] 5/1-8=-3 [2][表达式] 2-6/3 [3][表达式] 8-1/5=8 [4][表达式] 2*3/1=6 [5][表达式] 5-1*8=-3 [6][表达式] 3-8-9=-14 [7][表达式] 1*6-5=1 [递归] 1*8/7=1.1428571428571428 [8][表达式] 6*1+2=8 [9][表达式] 6-5+6=7 [10][表达式] 7*8+8=64 [11][表达式] 8*5-9=31 [12][表达式] 8+4*7=36 [13][表达式] 7/8-2=-2 [14][表达式] 6*9+3=57 [15][表达式] 4/5/4