import javax.swing.*; import java.util.*; public class GameCount24{ public static void main(String args[]){ int[] arr1 = new int[4]; String result = ""; String pai; String input; int i; int out; Random ran = new Random(); for(i=0;i=4){ System.out.println("牌"+s1[i]+"非法"); System.exit(0); } } } int calculator(char[]f,int[]pai) { int v,i=0,j=0; char[] p = f; t1=t2=0; //设置空栈 PaiCnt=0; if(p[f.length-1]!='='){ System.out.println("字符串以'='结束"); System.exit(0); } while (p[i]!='=') switch(p[i]) { case '+': case '-': while (t2!=0&&(s2[t2]!='(')) //执行先遇到的加、减、乘、除运算 calcu(); //当前运算符进栈 s2[++t2]=p[i]; //读下一个字符 System.out.println("运算符进栈s2["+t2+"]="+s2[t2]); i++; break; case '*': case '/': if (t2!=0&&(s2[t2]=='*')||(s2[t2]=='/')) //执行先遇到的乘、除运算 calcu(); //当前运算符进栈 s2[++t2]=p[i]; //读下一个字符 i++; System.out.println("运算符进栈s2["+t2+"]="+s2[t2]); break; case '(': //左括号进栈 s2[++t2]=p[i]; //读下一个字符 i++; System.out.println("运算符进栈s2["+t2+"]="+s2[t2]); break; case ')': while (s2[t2]!='(') //执行括号内的加、减、乘、除运算 calcu(); //弹出左括号 t2--; //读下一个字符 System.out.println("弹出左括号"); i++; break; default: //把字符串转换成整数值 v=0; do { v = 10*v+p[i]-'0'; //将一个数字字符或连续的数字字符转换为数值类型的量 i++; } while((p[i]>='0')&&(p[i]<='9')); //操作数进栈 s1[++t1]=v; CheckPai(pai); PaiCnt++; System.out.println("操作数进栈s1["+t1+"]="+s1[t1]); //num[j++]=v; }; //执行先遇到的加、减、乘、除运算 while (t2!=0) calcu(); //返回结果 return s1[t1]; } }