资源简介
一个用Java实现的计算器小功能, 可以支持加减乘数, 以及括号运算
代码片段和文件信息
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class CalcDemo {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(exec(“-8*(((-2+4)+3)/((-1-5)*-2)-5)“));
}
/**
*
* @param exp
* 带括号的四则表达式
* @return 运算结果
*/
public static double exec(String exp) {
// 有括号
// -8*(((-2+4)+3)/((-1-5)*-2)-5)
int leftIndex = exp.lastIndexOf(‘(‘); // 16
if (leftIndex == -1) {
// 没有括号
// System.out.println(“calc“ + exp);
return calc(exp);
} else {
// 如果有括弧,调用exec
// System.out.println(“exec“ + exp);
// 先找最里面的(位置 再找对应的)位置
// (-1-5)*-2)-5) 21
int rightIndex = exp.substring(leftIndex).indexOf(‘)‘) + leftIndex;
// 去独立的表达式,运算 calc(-1-5)
double res = calc(exp.substring(leftIndex + 1 rightIndex));
// 重新组织表达式
exp = exp.substring(0 leftIndex) + res
+ exp.substring(rightIndex + 1);
// -8*(((-2+4)+3)/( -6 *-2)-5)
return exec(exp);
}
// 如果没有括弧 直接调用calc
}
/**
*
* @param exp
* 不带括号的四则表达式
* @return 运算结果
*/
public static double calc(String exp) {
// 1 . 获取所有四则运算的数字
List numbers = sliptNumbers(exp);
// 2. 获取所有四则运算的操作符号
List ops = sliptOps(exp);
// 3. 先乘车运算
// 遍历运算符中的*和/
for (int i = 0; i < ops.size(); i++) {
// * /
// 获取运算符(不移除)
char op = ops.get(i);
// 如果是 * 或者 /, 从运算符的容器中移除,同是从数字容器中到对应该运算符位置的两个数字(移除数据,后面所有数据往前顺序移动)
if (op == ‘*‘ || op == ‘/‘) {
// 从运算符的容器中移除
ops.remove(i);// 移除当前位置
// 从数字容器中获取对应该运算符位置的两个数字(移除)
double d1 = numbers.remove(i);
double d2 = numbers.remove(i);
// 运算
d1 = op == ‘*‘ ? d1 * d2 : d1 / d2;
// 把运算结果插入到数字容器中的i位置
numbers.add(i d1);// 插入到i的位置 原来从i位置一直到最后的数据,都要往后瞬移一位
// numbers.set(i d1);//设置i位置上的数据为d1其余不变
i--;// 移除后,后面所有运算符往前移动,为了保证下一个运算符不被遗漏,所以i--
}// end if (op == ‘*‘ || op == ‘/‘) {
}// end for (int i = 0 ; i < ops.size(); i++) {
// 4. 再加减运算
while (!ops.isEmpt
- 上一篇:基于android的移动学习平台
- 下一篇:java实现html转txt
相关资源
- 一个带界面的java计算器程序,新手可
- 基于Java语言实现的日期计算器报告
- 编译原理-简单计算器的设计2
- java实现的计算器课程设计报告
- Java计算器 实现最简单的加减乘除、开
- Java的计算器含代码和报告
- java编写的计算器,能实现加减乘除
- Java简易计算器
- Calculator(Javafx).rar
- Android小程序源代码——计算器
- java简单模仿win10计算器
- java计算器程序课程设计报告
- Android计算器270793
- java简单计算器源代码
- 密里根油滴计算器
- Java课程设计-简单计算器含完整源代码
- java 计算数学表达式中缀表达式
- JAVA计算器268139
- Android开发的加法计算器
- 输入字符串实现加减乘除四则运算j
- Java计算器实验报告
- RPN计算器 java代码
- 简易图像相似度计算器 jdk1.5版
- 分数计算器界面设计
- Java图形用户界面的简易计算器
- java课设-保存计算过程的计算器代码
- 基于Android平台:四则运算计算器源码
- 能够处理括号的Java小计算器
- Android做的计算器
- linux-java调用c语言编译的so动态库-jn
评论
共有 条评论