📄 tokenoperator.java
字号:
public class TokenOperator
extends Token
{
private static String OPERATORS = "+-/*^()";
private static int[] PRECEDENCE = { 1, 1, 2, 2, 3, 0, 9};
private String token;
public TokenOperator(String _token) throws TokenException
{
if (OPERATORS.indexOf(_token) >= 0)
{
token = _token;
}
else
{
throw new TokenException("invalid operator: " + _token);
}
}
public TokenNumeric evaluate(double num1, double num2) throws TokenException
{
if (token.equals("+"))
{
return new TokenNumeric(num2 + num1);
}
else if (token.equals("-"))
{
return new TokenNumeric(num2 - num1);
}
else if (token.equals("*"))
{
return new TokenNumeric(num2 * num1);
}
else if (token.equals("/"))
{
return new TokenNumeric(num2 / num1);
}
else if (token.equals("^"))
{
return new TokenNumeric(Math.pow(num2, num1));
}
else
{
throw new TokenException("invalid token, can not evaluate");
}
}
public boolean isOpenParen()
{
return token.equals("(");
}
public boolean isCloseParen()
{
return token.equals(")");
}
public int order()
{
return PRECEDENCE[OPERATORS.indexOf(token)];
}
public static boolean isValidOp(char op)
{
return (OPERATORS.indexOf(op) >= 0);
}
public String toString()
{
return "Operator: " + token;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -