我使用扫描仪类来允许用户输入一个字符串,然后程序将确定该字符串是否为。)只是一个数字b。)只是一个变量c。)a系数乘以a变量d。)变量到幂或d。)系数乘以变量到幂。例如,如果用户输入" 3",则程序确定它的情况a;如果用户输入" x ^ 43",则计算机确定其情况d。
老实说,我不知道该去哪儿。我试图创建一个try-catch块来查看sting是否可以转换为数字,但是只能命中一个案例。我不确定如何制作一个简洁的代码,可以检查字符串以找到一个模式,以确定它是什么情况。有人可以引导我朝着正确的方向前进吗?
谢谢, Shubhang
答案 0 :(得分:0)
我认为你必须使用真正的解析器来表达数学表达式。例如,您可以使用我的Symja项目。在Calculus example中,您可以看到基本用法。评估之后,您可以调用这些方法来检测result
表达式的类型。
result.isNumber()
result.isSymbol()
result.isTimes()
result.isPower()
如果表达式是Times()
或Power()
表达式,您可以将其转换为AST expression并检测更多属性。