Я писал код для инфикса для постфиксного преобразования. Однако я не могу найти метод проверки для таких операторов, как (,), +, - и т.д. Я мог бы использовать ASCII, но есть ли какой-либо метод (например isLetter() и т.д.), Который я мог бы использовать? Также как я могу определить приоритет оператора?
Я мог бы использовать ASCII, но есть ли какой-либо метод (например, isLetter() и т.д.), Который я мог бы использовать?
Ну, я могу предложить вам Character.isDigit('1')
или Character.isLetter('A')
для проверки того, является ли этот символ цифрой или буквой, но в качестве настройки я поеду на ArrayList
.
ArrayList<Character> alist=new ArrayList<>();
alist.add('+');
alist.add('-');
alist.add('/');
alist.add('%');
char c='A';
if(alist.contains(c))
{
System.out.println("UNREACHABLE");
}
Во-вторых, для приоритета оператора вы можете использовать
HashMap<Character, Integer> hm=new HashMap<>();
hmap.put('+',1);
с парой ключей и значений, чтобы определить приоритет
Вы можете попробовать функцию getType в классе символов. Он также имеет множество констант для проверки, например: MATH_SYMBOL.
Класс символов также имеет методы, такие как isDigit, isLetter и т.д.
Дополнительная информация: http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#getType(int)