方程中的数字(N)可以是正数或负数。即:3 / -25。它们也可以是任何有效的数值,例如 -3.1415 等。
允许用户根据需要多次重复输入表达式。程序不能因为用户输入不当而失败,因此,您必须捕获错误异常并处理它们。
我的错误是; 线程“main”java.lang.Error 中出现异常:未解决的编译问题: 标记上的语法错误、结构错误 StackInterface 类型已经定义 无法实例化 StackInterface 类型 StackInterface 类型的方法 push(double) 未定义 StackInterface 类型的 pop() 方法未定义
有什么建议吗?
包堆栈; 导入java.util.ArrayList; 导入java.util.List; 导入 java.util.EmptyStackException; 导入java.util.Scanner; 公共类堆栈接口{ 私有列表堆栈; 私有对象顶部; 私有节点链接; 公共堆栈接口() { 顶部=空; this.link = null; } 私人无效推(双数字){ // 创建新节点 temp 并分配内存 节点温度 = new Node(); // 检查堆栈(堆)是否已满。然后插入一个 // 元素会导致堆栈溢出 如果(温度==空){ 系统.out.print(" 堆溢出”); 返回; } // 将数据初始化到临时数据字段中 num = temp.getNodeType(); // 将顶部引用放入临时链接 //温度=顶部; // 更新顶部引用 顶部=温度; } // 检查堆栈是否为空的实用函数 公共布尔 isEmpty() { 返回顶部==空; } // 返回栈顶元素的实用函数 公共 int peek() { // 检查堆栈是否为空 如果(!isEmpty()){ 返回(双)顶部; } 别的 { System.out.println("堆栈为空"); 返回-1; } } 私人无效双重弹出(){ // 检查堆栈下溢 如果(顶部==空){ 系统.out.print(" 堆栈下溢"); 返回; } 别的{ //更新top指针指向下一个节点 顶部=链接; } 返回(双)顶部; } 公共静态双evaluateMathExpression(字符串表达式){ StackInterfacenumStack= new StackInterface(); OperatorStack opStack = new OperatorStack(); 整数 i = 0; 同时(我
您正在尝试用java制作解析器,我认为这可能对您有帮助http://cogitolearning.co.uk/2013/04/writing-a-parser-in-java-the-tokenizer/