Проверка операторов в Java

1

Я писал код для инфикса для постфиксного преобразования. Однако я не могу найти метод проверки для таких операторов, как (,), +, - и т.д. Я мог бы использовать ASCII, но есть ли какой-либо метод (например isLetter() и т.д.), Который я мог бы использовать? Также как я могу определить приоритет оператора?

Теги:
stack
operator-precedence
postfix-notation

2 ответа

0
Лучший ответ

Я мог бы использовать 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);

с парой ключей и значений, чтобы определить приоритет

0

Вы можете попробовать функцию getType в классе символов. Он также имеет множество констант для проверки, например: MATH_SYMBOL.

Класс символов также имеет методы, такие как isDigit, isLetter и т.д.

Дополнительная информация: http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#getType(int)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню