【问题标题】:Checking for Operators in Java在 Java 中检查运算符
【发布时间】:2014-05-29 11:31:15
【问题描述】:

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

【问题讨论】:

    标签: java stack operator-precedence postfix-notation


    【解决方案1】:

    。我可以使用 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&lt;Character, Integer&gt; hm=new HashMap&lt;&gt;();

    hmap.put('+',1);
    

    用键值对来确定它的优先级

    【讨论】:

      【解决方案2】:

      您可以尝试 Character 类中的 getType 函数。它还有许多常量需要检查,例如:MATH_SYMBOL。

      Character 类也有 isDigit、isLetter 等方法。

      更多信息: http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#getType(int)

      【讨论】:

        猜你喜欢
        • 2016-08-02
        • 2017-12-19
        • 2011-11-28
        • 1970-01-01
        • 2019-06-27
        • 1970-01-01
        • 2021-10-27
        • 2015-07-28
        • 2023-04-07
        相关资源
        最近更新 更多