Java基础8----运算符1(数学运算符)

引言

所有的程序开发,都是数据的处理,对于数据的处理,一定会有操作,而这些操作就是运算符。比如说加法运算就要用到运算符"+".而对于运算符,是存在有优先级先后的关系的,很简单的例子,乘法的优先级高于加减法。
对于运算符的优先级问题,个人觉得没必要去背,太多了,只需要技术()的优先级是最高的。所以说通常只需要在表达式中适当的加上括号就好了,而且开发中不应该写比较复杂的运算表达式,否则就是一个很折磨人的情况

public class Demo {
   
    public static void main(String[] args) {
   
        // 复杂表达式示例
        int a = 2 ;
        int b = 3 ;
        // 下面这一串长长的表达式,真的是折磨人
        int res = a + b * b * a + a++ + ++b + a + --a - --b * a 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,作为AI语言模型,我无法为您提供完整的编程解决方案,但我可以给您提供一些思路和代码片段。 1. 思路 要计算字符串“8-9/3”,我们需要将其转化为数学表达式,并进行计算。具体来说,我们可以采用以下步骤: 1)将字符串转化为表达式树; 2)对表达式树进行遍历,计算出表达式的值。 2. 代码片段 以下是Java中实现表达式树的代码片段,可以供您参考: ``` //定义表达式树的节点类 class TreeNode { String value; TreeNode left; TreeNode right; public TreeNode(String value) { this.value = value; this.left = null; this.right = null; } } //将字符串转化为表达式树 public TreeNode buildExpressionTree(String[] expression) { Stack<TreeNode> stack = new Stack<>(); for (int i = 0; i < expression.length; i++) { if (isOperator(expression[i])) { TreeNode node = new TreeNode(expression[i]); node.right = stack.pop(); node.left = stack.pop(); stack.push(node); } else { stack.push(new TreeNode(expression[i])); } } return stack.pop(); } //判断是否为运算符 public boolean isOperator(String s) { return s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/"); } ``` 接下来是计算表达式树的代码片段: ``` //计算表达式树 public int calculateExpressionTree(TreeNode root) { if (root == null) { return 0; } if (root.left == null && root.right == null) { return Integer.parseInt(root.value); } int left = calculateExpressionTree(root.left); int right = calculateExpressionTree(root.right); if (root.value.equals("+")) { return left + right; } else if (root.value.equals("-")) { return left - right; } else if (root.value.equals("*")) { return left * right; } else { return left / right; } } ``` 最后,我们可以将以上代码片段组合起来,实现对字符串“8-9/3”的计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值