在计算的java

问题描述:

号码和运营商之间的区分在Java 如果GUI输入是这(55.55 + 23424 * 4545) 那些输入将来自字符串被转换为整数。 问题是我该如何让程序区分这个计算中的数字和运算符?在计算的java

+4

希望他们不会全部转换为整数,因为55.55是不是整数... – DNA 2012-03-04 17:05:35

您将不得不解析您之前收到的字符串,获取不同变量中的数字和运算符。允许用户只输入数字并为操作员提供按钮可能会更简单,因此您可以将它们视为信号。

只要解析这种字符串(如果您允许所有类型的运算符和操作),最终都需要编写完整的语法并从该语法生成​​解析器。

使用正则表达式!对数字的正则表达式:

number: [0-9]+\.?|[0-9]*\.[0-9]+ 

this tutorial如何使用正则表达式来正确地解析字符串。

我发现一个有趣的想法在这里:Is there an eval() function in Java?

在Java中使用EVAL-模拟。

也有一个特殊的eval项目位置:

http://java.net/projects/eval/pages/Home

+0

+1,这是新的东西为了我 :-) – 2012-03-04 17:08:45