【发布时间】:2013-11-07 15:58:24
【问题描述】:
这是我写的一个方法来检查哪个运算符具有最高优先级,现在我的问题是:有没有其他方法可以做到这一点?我一直在测试这个,它工作正常,但我很确定应该有改进的余地。你怎么看?
static boolean hasHigherPrecendence(char top, char current){
String t = String.valueOf(top);
String c = String.valueOf(current);
System.out.println(t);
System.out.println(c);
switch (t) {
case "-":
if ( c.equals("-") || c.equals("+") )
return false;
break;
case "+":
if ( c.equals("-") || c.equals("+") )
return false;
break;
case "/":
if ( !c.equals("*") || !c.equals(t) || !c.equals("%") )
return false;
break;
case "*":
if ( !c.equals("%") || !c.equals(t) || !c.equals("/"))
return false;
break;
case "%":
if (c.equals(t) || c.equals("*") || c.equals("/"))
return false;
break;
default:
throw new IllegalArgumentException("Operator unknown: " + t);
}
return true;
}
【问题讨论】:
-
如果不需要,为什么要将
char更改为String?
标签: java math operators switch-statement