📄 27.txt
字号:
/**
四.计算四则运算表达式运算结果(高级)
知识点:
2 一维数组
2 Stringàint数据类型转换(Integer类)
2 堆栈数据结构的使用
问题描述:
表达式计算是实现程序设计语言的基本问题之一,也是数据结构在程序中的典型应用。
目标/基本功能要求:
1. 按照算符优先关系,实现对算术四则混合运算表达式的求值。
2. 处理的对象是以字符序列的形式(Java String)给出语法正确的、不含变量的整数表达式。
说明/提示:
1. 常规约定的算符优先关系? ( * / + - )
2. 为实现算符优先算法,可使用两个堆栈分别寄存运算符和运算数(中间结果),算法的基本思想是:
1) 首先置操作数栈(S1)为空栈,表达式起始符'#'设为运算符栈(S2)的栈底元素;
2) 依次读入表达式中的每个字符,若是数字则连接在一起转换为int型操作数进S1栈;若是运算符,则和S2栈的栈顶运算符比较优先权后做相应操作,直至整个表达式表达式求值完毕(即S2栈的栈顶元素和当前读入的字符均为'#')。
扩充功能:
1. 对输入任意四则表达式字符串,判断其中是否合法,如非法,输出报错信息,如合法则计算并输出运算结果,同时将结果返回;
2. 将运算数类型扩充至浮点型。
*/
import java.lang.*;
import java.io.*;
public class Opration2Test
{
public static void main(String[] args)
{
// String s = "-(90-12)/6+50*(6*(4-1)-12)/(12-2*3)";
Opration2Test stack = new Opration2Test();
String s = stack.readString();
if(stack.isValid(s)) {
System.out.print(" 表达式字符串
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -