资源简介
java代码实现中缀表达式转后缀表达式,并计算结果
代码片段和文件信息
package com.mrwang.calculator;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Stack;
public class Calculator {
//定义操作符常量
private final static char ADD = ‘+‘;
private final static char SUBTRACT = ‘-‘;
private final static char MULTIPLY = ‘*‘;
private final static char DIVIDE = ‘/‘;
public static void main(String[] args) {
// 获取输入的值
// “3+(1*2)-(5+2)“
Scanner in = new Scanner(System.in);
System.out.println(“请输入一个数学表达式:“);
String expression = in.nextLine();
String postfix = Calculator.infixToPostfix(expression);
System.out.println(postfix);
System.out.println(Calculator.calculator(postfix));
}
/**
* 该方法用来将中缀表达式(数学表达式)转为后缀表达式(逆波兰表达式)
* Infix to Postfix
* http://blog.fishc.com/2093.html/2#prettyPhoto 中缀表达式转后缀表达式
* http://blog.tpircsboy.com/acm/poj-1686/ 后缀表达式求值
* http://www.aijava.cn/13197.html
* @param infixPression
* @return
*/
public static String infixToPostfix(String infixexpression){
Stack S1 = new Stack();// 运算符栈
Stack S2 = new Stack();// 表达式栈
int len = infixexpression.length(); // 中缀表达式的长度
int index = 0;
while(index < len){ // 循环取出中缀表达式中的字符
char c = infixexpression.charAt(index);
switch(c){
case ‘(‘:
S1.push(c);
break;
case ‘)‘:
while(S1.peek() != ‘(‘) {
S2.push(S1.pop());
}
S1.pop();
break;
case ADD:
case SUBTRACT:
while(!S1.empty() && S1.peek() != ‘(‘) {
S2.push(S1.pop());
}
S1.push(c);
break;
case MULTIPLY:
case DIVIDE:
w
- 上一篇:JavaToExe,jar转exe
- 下一篇:Java实现KMeans点集文件
相关资源
- JAVA计算器实验报告与源码
- 北大青鸟accp5.0java第四章理论加上机作
- 超市后台管理系统
- 基于springboot和vue 前后端分离后台管理
- 一个完整的点餐微信小程序(附后台
- Java快速开发平台源码(renren-fast)
- jsp+servlet+jdbc开发学生信息后台管理系
- Spring Boot技术栈博客企业前后端.txt
- android开发摄像头实现前置后置切换
- Android一键清理后台实现
- 网上商城后台管理系统Oracle+Java web
- 基于JavaWeb的美食图片分享网站.zip
- jsp程序设计课后习题答案
- 支付宝支付参考代码服务端
- 淘淘商城修改后的pagehelper-3.4.2-fix.j
- JAVA后台面经.pdf
- 《Java设计模式》课后答案-刘伟.rar
- 疯狂JAVA讲义课后习题解析
- Java设计模式刘伟课后习题答案
- 微信三级分销java后台完整源码.rar
- 一个仿当当的网上商城 Eshop System 前台
- 《Java设计模式》刘伟 课后习题及模拟
- java web水果商城大疆果园(前后台实现
- JAVA程序设计教程课后习题答案
- 《Java设计模式》课后习题参考答案
- JAVA微商城前后台源码
- Android 完美实现图片圆角和圆形 bug修
- 1:android5.1跨应用开启服务2:广播必
- 《Java Web开发实战经典》.(李兴华)
- 简单Ajax(带前后台交互)
评论
共有 条评论