java - 检查 Java 中的运算符

标签 java stack operator-precedence postfix-notation

我正在编写中缀到后缀转换的代码。但是我无法找到一种方法来检查 (,),+,- 等运算符。我可以使用 ASCII,但有没有可以使用的方法(如 isLetter() 等)?另外我如何定义运算符优先级?

最佳答案

. I could use ASCII but is there any method (like isLetter() etc) which I could use?

好吧,我可以建议你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);

使用键和值对来确定其优先级

关于java - 检查 Java 中的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23932316/

相关文章:

java - 我在哪里可以下载 com.sun.security.* 包?

java - 将一个 ArrayList 中的零添加到另一个

java - 实时监控 Java 中的总线程堆栈大小

c++ - 堆栈字符问题

android - 如何启动一个 Activity 两次?

令人困惑的答案 : One says *myptr++ increments pointer first, 其他人说 *p++ 取消引用旧指针值

c# - 为什么这个表达式在 C# 和 C++ 中产生不同的结果?

java - 为什么创建一种类型的引用变量但将其分配给另一种类型?

c - 为什么这些构造使用增量前和增量后未定义的行为?

Java - 超时(无限循环)错误