我正在使用netbeans,我仍然是这方面的初学者。 在主类中,我们应该输入一个表达式,该表达式应该是一个字符串,它还应该显示转换后的后缀。 然后是3个类,类Stack,类checkExpression和类Convert。 我不知道在这3个班级中放什么。请帮我。谢谢:))
答案 0 :(得分:1)
类适用于分离不同的,可重用的组件,因此每个类应该有一个这样的组件。我会这样做:
Stack
是一个表示解析器堆栈的类。它有方法在堆栈上推送符号并检索它们。 Convert
是一个使用Stack
类转换字符串的类。它包含一个方法,在一个大循环中,执行以下操作(其中一些是单独的方法):
Stack
类提供的方法)(
和)
),用后缀形式字符串替换最后三个令牌(例如替换`[...,“1”,“+”,“2”]与[...,“1 2 +”])之后,返回堆栈。
此外,Convert
将包含您的main
方法,该方法读取字符串,转换它,使用CheckExpression
检查结果,然后打印结果或错误消息。
CheckExpression
一个包含一个方法的类,该方法通过检查生成的堆栈是否只有一个元素(结果)来检查字符串是否完全转换。这假设一个纯粹的左关联语法,例如,3 + 4 * 5
将被解析为(3 + 4) * 5
(但是,3 + (4 * 5)
也会被解析为3 + (4 * 5)
)。
也许你应该问你的老师,将它作为一个纯粹的左关联解析器来实现是否合适以及这种构造类的方法是否合适?你的最终成绩的50%是很多,所以你应该能够从他/她那里获得更具体的成绩。