package com.coding.basic.stack.expr.util;
public enum Operator {
ADD("+",1),SUB("-",1),MULTY("*",2),DIVIDE("/",2)
,LEFTBRACKRT("(",3),RIGHTBRACKET(")",3);
private String flag;
private int level;
private Operator(String flag,int level){
this.flag = flag;
this.level = level;
}
public static int getLevelByFlag(String flag){
Operator[] opers = Operator.values();
for (Operator operator : opers) {
if(operator.flag.equals(flag)){
return operator.level;
}
}
return -1;
}
public static Operator getOperator(String flag){
if(ADD.flag.equals(flag)){
return ADD;
}else if(SUB.flag.equals(flag)){
return SUB;
}else if(MULTY.flag.equals(flag)){
return MULTY;
}else if(DIVIDE.flag.equals(flag)){
return DIVIDE;
}else if(LEFTBRACKRT.flag.equals(flag)){
return LEFTBRACKRT;
}else if(RIGHTBRACKET.flag.equals(flag)){
return RIGHTBRACKET;
}
return null;
}
public static boolean contains(String flag){
if(ADD.flag.equals(flag)){
return true;
}else if(SUB.flag.equals(flag)){
return true;
}else if(MULTY.flag.equals(flag)){
return true;
}else if(DIVIDE.flag.equals(flag)){
return true;
}else if(LEFTBRACKRT.flag.equals(flag)){
return true;
}else if(RIGHTBRACKET.flag.equals(flag)){
return true;
}
return false;
}
public String getFlag() {
return flag;
}
public int getLevel() {
return level;
}
}