Tag: shunting yard

用Java标记中缀字符串

我正在Java中实现Shunting Yard算法 ,作为我的AP计算机科学课程的一个副项目。 我在Javascript中实现了一个简单的算法,只有基本的算术表达式(加法,减法,乘法,除法,取幂)。 要将其拆分为数组,我所做的是找到每个运算符( +-*/^ ),以及数字和括号,然后在它们周围放置一个空格,然后将其拆分为数组。 例如,中缀字符串4+(3+2)将被制成4 + ( 3 + 2 ) ,然后在空格上分割。 但是,我觉得这种方法非常慢,当你开始添加正弦,余弦,正切,绝对值等数学函数时,它实现起来越来越难以实现。 将像sin(4+3)-8这样的字符串分成数组[“sin”,”(” 4,”+”,3,”)”,”-“,8]什么? 我可以使用正则表达式,但我并不是很了解它们,我正在努力学习它们,所以如果这对他们来说是最好的解决方案,请问回答者能解释它的作用吗?