使用 java 在 infix 到 postfix 应用程序中得到错误的输出

2024-01-11

我最近编写了一个java程序,它采用中缀表达式并将其转换为后缀表达式。它在大多数情况下都有效,但我得到了某些表达式的错误输出。例如表达式 a+b+c+d+e 在应该输出的时候会输出 abcde+++++ a b + c + d + e +。

import java.util.Stack;
public class ITP {

    public static Stack<Character> stack;
    public static String inFixExp;
    public static String postFixExp = "";

    public static String infixToPostfix(String exp){
        ITP o = new ITP();
        stack = new Stack<Character>();
        inFixExp = exp;

        for (int i = 0; i < inFixExp.length(); i++) {

            if (inFixExp.charAt(i) == '(')
                stack.push(inFixExp.charAt(i));
            else if (inFixExp.charAt(i)==')'){
                while (stack.peek()!='('){
                    postFixExp += stack.pop();       
                }
                stack.pop();
            }else if ((inFixExp.charAt(i)=='*')||(inFixExp.charAt(i)=='/')||(inFixExp.charAt(i)=='+')||(inFixExp.charAt(i)=='-')){
                while(!stack.isEmpty() && o.getPredence(inFixExp.charAt(i)) < o.getPredence(stack.peek()))
                    postFixExp += stack.pop();
                stack.push(inFixExp.charAt(i));
            }else
                postFixExp += inFixExp.charAt(i);

        }
        while(!stack.isEmpty())
                postFixExp += stack.pop();



        return postFixExp;
    }

    public int getPredence(Object op) {

        if((op.equals("*")) || (op.equals("/")))
            return 3;
        else if((op.equals("+"))||(op.equals("-")))
            return 1;
        else
            return 0;
    }

}

我发现如果我在第 24 行用


Your

if ((inFixExp.charAt(i) == '*') || ...

checks charAt()但你的getPredence(precedence?)检查一个String,尝试与char反而。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 java 在 infix 到 postfix 应用程序中得到错误的输出 的相关文章

随机推荐

  • Scrapy 和 robots.txt 的尊重

    我昨天发现Scrapy默认尊重robots txt文件 ROBOTSTXT OBEY True 如果我请求一个 URLscrapy shell url 如果我有回应 是否意味着url不受robots txt保护 根据文档 只有当您使用创建项
  • 如何在悬停在anchorEl 和“popover”上时继续显示“popover”?

    在这个例子中material ui https material ui com utils popover mouse over interaction https material ui com utils popover mouse o
  • 在 Hibernate 中保留 Joda DateTime 而不是 Java Date

    我的实体当前包含 java Date 属性 我开始经常使用 Joda Time 进行日期操作和计算 这意味着我必须不断地将日期转换为 Joda DateTime 对象 然后再转换回来 所以我想知道 是否有任何理由我不应该只更改实体来存储 J
  • 在TeX中制作一个牢不可破的块[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想在 TeX 中做如下的事情 begin nobreak Text here will not split over pages it will r
  • QueryOver 上的析取始终引用根实体

    我试图在 X 个实现包含日期信息的特定接口的实体上使用析取来添加一定数量的 OR 条件 我的问题是 当生成 SQL 时 所有析取条件都指向 QueryOver 的根实体 我创建了一个通用方法来添加我的条件 public static Que
  • 如何在 React 中的组件外部访问 Redux 存储

    我从 Redux 开始 我总是在带有 connect 和 mapStateToProps 的组件中使用它 但现在我想每隔 x 次使用 setInterval 调用我的 API 以检查服务器是否有未存储在 Redux 存储中的新数据 并替换它
  • Keycloak 将新注册的用户保存到应用程序数据库中

    在我的应用程序中 我有一些实体关系 例如用户和组织 我想我会使用Keycloak 这样我就不必实现自定义注册 登录 密码重置 授权和身份验证 问题是 当用户注册到 Keycloak 时 我的应用程序的内部数据库中没有新的用户实体 有没有办法
  • 访问 Jboss7 或 Wildfly 上的多个 Web 应用程序

    我知道我们可以在 JBoss 7 或 Wildfly 上部署多个 Web 应用程序 但是我们如何使用不同的端口访问不同的Web应用程序呢 我们在哪里为 Web 应用程序设置该端口 例如 application1 可在 x x x x 808
  • 在 OO 模型中添加双向关系的最佳实践

    我正在努力想出一种在面向对象模型中添加双向关系的好方法 假设有一个客户可以下很多订单 也就是说客户和订单类之间存在一对多关联 需要双向遍历 对于一个特定的客户 应该可以告诉所有客户他们已经下的订单 对于订单应该可以告诉客户 下面是一段 Ja
  • 使用 pytest 和假设进行异常处理和测试

    我正在编写带有假设的统计分析测试 假设使我得出一个ZeroDivisionError在我的代码中 当它传递非常稀疏的数据时 所以我调整了我的代码来处理异常 就我而言 这意味着记录原因并重 新引发异常 try val calc data ex
  • 在 SLComposeViewController 顶部显示附加图像

    将图像添加到 SLComposeViewController 时 该图像将显示在 SLComposeViewController 视图的右侧 然而 它显示在下面 如下面的层中 另一个看起来像指南针的默认图像 最上面是一个剪辑 这个指南针图像
  • 如何通过单击按钮以编程方式退出应用程序

    我想通过单击按钮退出应用程序 单击按钮的代码是 quitBtn setOnClickListener new View OnClickListener Override public void onClick View paramView
  • 有哪些工具可用于调试/单步执行正则表达式?

    虽然有很多好的在线和离线测试正则表达式的工具 但我还没有找到一个工具 除了正则表达式好友 http www regexbuddy com 让我看到正则表达式引擎查找匹配项 或就此而言查找不存在匹配项 所采取的步骤 有谁知道有什么工具可以做到
  • 使用 Angular 路线时不显示 Stripe Checkout 按钮

    我目前正在尝试实现标准的 Stripe Payments 结账对话 当我插入短片时
  • 尝试将照片上传/发布到群组时出现 OAuthException

    我目前正在尝试通过应用程序将照片上传到页面和组 我有这些代码 try facebook gt setFileUploadSupport true args array message gt This is my image caption
  • 如何处理 Git 存储库中的图像?

    我继承了一个中等规模的 iOS 项目 大约 30 000 行代码 它有一个insane图像资产的数量 当然我们使用Git Github来进行scm 目前 图像包含在目录树中 因此被提取到存储库中 使其变得臃肿并且通常使开发变得非常令人头疼
  • Chrome 的“请求桌面站点”选项如何工作?

    对于 iOS 谷歌浏览器 当用户点击 请求桌面站点 按钮时 浏览器会做什么来尝试打开桌面站点 我想象网站正在寻找的请求上有某种标头 或者类似的东西 我认为唯一的区别是User Agent 请求中的标头 以下是我的 Android 设备上的
  • Rails JSON 请求未正确解析为 post 参数

    我正在尝试调试 Rails 未解码 JSON POST 数据的问题 服务器日志显示 2011 12 14T06 44 44 00 00 app web 2 Started POST 2011 12 14T06 44 44 00 00 app
  • 具有参数化构造函数的 Xamarin DependencyService

    如何使用 Xamarin Forms DependencyService 通过参数化构造函数注入依赖项 Answer 你不能 程序集属性实现仅适用于默认构造函数 也称为无参数构造函数 例如 assembly Dependency typeo
  • 使用 java 在 infix 到 postfix 应用程序中得到错误的输出

    我最近编写了一个java程序 它采用中缀表达式并将其转换为后缀表达式 它在大多数情况下都有效 但我得到了某些表达式的错误输出 例如表达式 a b c d e 在应该输出的时候会输出 abcde a b c d e import java u