繁体   English   中英

输入运算符和操作数到两个不同的堆栈中

[英]Input operators and operands into two different stacks

我想从使用Scanner或更合适的东西的用户那里得到一个表达式作为输入,并将运算符推入一个堆栈,将操作数推入另一个堆栈。

所以如果我有类似的东西:52 + 3 *(2-1)
我想使用堆栈对其进行评估。

我想到将整个行读取为字符串并将其更改为char [],但问题是52将被读取为两个单独的char。

您可以一次读取整行,然后使用StringTokenizer获取各个运算符/操作数。

    String example = "52+3*(2-1)";
    String delim = "[/*-+()]";

    StringTokenizer st = new StringTokenizer(example, delim, true);
    while(st.hasMoreTokens())
    {
        // check if it's an operator or operand and add it to the appropriate stack
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM