二柱子

二柱子测试三

 

主要讲一下我测试三的主要思路

首先先讲一下算数表达式的随机生成

先建一个 ArrayList<String>对象,用于存取生成的算数表达式

先建立一个StringBuffer对象,用于存判断是否重复之前随机生成的表达式

将生成的数和运算符都转化为字符串形式,添加到建立好的StringBuffer对象里

将StringBuffer 转化为String 进行判断重复

如果不重复就添加到ArrayList<String>对象,

 

再讲一讲对字符串进行计算,利用Java 栈,

首先将字符串分割成一个一个字符,

然后进行判断,如果是操作数 判断下一字符 是不是数,如果是 进行拼接,直到下一个字符是操作符,再入数栈

如果是运算符则判断运算符栈与当前运算符优先级;优先级相等,则字符串栈出栈一个元素(运算符),

优先级低则将当前运算符压入运算符栈中;优先级高则优先级高则区出栈数字栈两个数字与出栈运算符栈栈顶运算符做运算,

结果压入数字栈中,当前运算符不变;判断程序结束边界为当前字符为‘#’或运算符栈栈顶字符为‘#’;

 

我觉得这两个功能是最重要的

posted @ 2020-09-25 00:11  奇怪的软工人  阅读(56)  评论(0编辑  收藏  举报