运算符优先于您定义它的方式,虽然常见,但并不是

Java语言应该识别的普遍事实.因此不,Java语言本身没有这样的比较.编写自己的文章当然很容易:

int precedenceLevel(char op) {

switch (op) {

case '+':

case '-':

return 0;

case '*':

case '/':

return 1;

case '^':

return 2;

default:

throw new IllegalArgumentException("Operator unknown: " + op);

}

}

然后给定char op1,op2,只比较precedenceLevel(op1),precedenceLevel(op2).

如果只有很少的运算符,也可以使用if-else或三元运算符代替switch.另一个选择是使用枚举运算符实现Comparable< Operator>,但是根据你正在做的事情,也许像ANTLR这样的解析工具更好.

请注意,上面的示例将^置于最高优先级,这意味着它可能用于表示取幂.事实上,Java语言中的^是独占的,或者它的优先级低于.

System.out.println(1+2^3); // prints 0

System.out.println(1+(2^3)); // prints 2

System.out.println((1+2)^3); // prints 0

这只是表明这些符号的优先级甚至语义不是普遍的事实.

也可以看看:

java优先级比较,Java运算符优先级比较相关推荐

  1. java运算优先级顺口溜_java运算符优先级记忆口诀

    尊重原创:(口诀)转自http://lasombra.iteye.com/blog/991662 今天看到<java编程思想>中的运算符优先级助记口诀,不过"Ulcer Addi ...

  2. java判断优先级代码_java运算符优先级排序正确的是哪些?

    在Java中,运算符是不可缺少的一份子,它支撑着Java的各种算法操作,与Java不可分离.但在Java运算符中也有优先级分别,你知道都是谁先谁后吗?跟小编一起来看看吧. Java中的优先级从上到下依 ...

  3. oracle 计算 符号优先级,oracle 表达式运算符优先级

    oracle 有以下几种运算符 算数运算符 连接运算符 比较(关系)运算符 逻辑运算符 1.算数运算符 算数运算符有四个, + , - ,* ,/. SELECT sal,sal*12 from em ...

  4. 计算机VB运算符号的优先级,VB.Net运算符优先级

    运算符优先级决定表达式中术语的分组.这会影响表达式的评估方式.某些运算符的优先级高于其他运算符,则会被优先运算; 例如,乘法运算符比加法运算符具有更高的优先级: 例如,表达式:x = 7 + 3 * ...

  5. linux C语言 任务优先级,C语言运算符优先级和口诀

    一共有十五个优先级: 1   ()  []  .  -> 2   !  ~   -(负号) ++  --   &(取变量地址)*   (type)(强制类型)    sizeof 3   ...

  6. c语言表达式的计算优先级,C语言运算符优先级(超详细)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言运算符优先级(超详细) 当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! ...

  7. c语言运算符优先级结合,C语言运算符优先级及结合性

    今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...

  8. Python运算符优先级与结合性

    Python运算符优先级与结合性 优先级和结合性是 Python 表达式中比较重要的两个概念,它们决定了先执行表达式中的哪一部分. Python 运算符优先级 所谓优先级,就是当多个运算符同时出现在一 ...

  9. Java/C语言/C++/Python/PHP运算符优先级

    Java 运算符优先级 运算符 优先级 postfix expr++ expr-- unary ++expr --expr +expr -expr ~ ! multiplicative * / % a ...

  10. Java运算符优先级(转)

    Java运算符优先级 序列号 符号 名称 结合性(与操作数) 目数 说明 1 . 点 从左到右 双目   ( ) 圆括号 从左到右     [ ] 方括号 从左到右     2 + 正号 从右到左 单 ...

最新文章

  1. javaWeb引入相关的jar
  2. java正则表达式的用法_Java 正则表达式的使用
  3. 你知道event库吗?教你如何写一个自己的event库
  4. POJ-4004:数字组合(用位移方法解组合数问题,Java版)
  5. Binary Search二分法搜索C++程序
  6. 使用Visual Studio 创建可视Web Part部件
  7. Android 7.0 隐式广播-监听网络变化
  8. 在基于or1200处理器的SoC上移植linux
  9. Linux 管道(pipe)原理及使用
  10. 超平面是什么?——理解超平面(SVM开篇之超平面详解)
  11. 软考软件设计师中级考试知识点(一)
  12. 真实遇到的产品经理面试题
  13. CodeForces 1045A. Last chance(线段树+网络流SAP)
  14. 3D打印在精密铸造领域应用的优势
  15. 记忆力也靠后天培养!22个方法激发最强大脑
  16. 扩展数组方法 给数组原形链追加方法(原型链中的this)
  17. 量子计算机科学家,再破纪录!中国科学家实现18个量子比特纠缠 为量子计算机奠基...
  18. ps 究竟是 aux 还是 ef
  19. 2020-03-31 获取微信好友真实地址
  20. Python字符串常规操作

热门文章

  1. 大脑中的不同网络:突显网络、听觉网络、基底神经节网络、高级视觉网络、视觉空间网络、默认模式网络、语言网络、执行网络、楔前叶网络、初级视觉网络、感觉运动网络
  2. EF6 使用 和 连接MySql 数据库-闪退和若干问题解决
  3. 阿里云开发一个文本转语音的网页(Springboot+vue)
  4. linux stoping redis,linux服务器保险—— 一次redis攻击的遭遇
  5. 远程无法访问syn服务器,ping回显请求超时time out故障处理过程
  6. 高中数学必修4知识点:第三章三角恒等变形
  7. 我的机械-电气-视觉-软件之路
  8. 【译】Spring Boot Features
  9. 中航技Excel应用讲座
  10. matlab画折现_MATLAB实例:绘制折线图