想玩手游挣点钱:JAVA:怎么让输入的字符串变成语句??

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 15:30:11
比如,我通过键盘输入或其他方法得到了一个字符串JString,其内容为"5+4*5",然后我想在int型赋值中用到这个算式:
int result=5+4*5; //5+4*5为JString的内容
即将输入的字符串作为语句的一部分或全部.
JAVA中是否有这样的方法??
求解答...
三楼的朋友:其实我是在做一个通过输入文本进行计算的计算器,关键的难点是如何将输入的文本变成可执行的语句。我的想法就是将它变成语句的一部分,有JAVA处理算式。但是我现在知道的是JAVA没有C++那样的include等预编译命令将外部的语句包含进来,如果能有那样的命令的话请指出!这样就可以把文本先输出再包含进来了。
本人正在学习JAVA,请高手指教。

你这个想法有点像sql的注入攻击,构造这样的语句xx or 1=1 输入便可以使条件成立.这里显然输入的内容也构成了语句。
但对于安全系数这么高的java来讲,这种功能的存在是不可能的。如果有的话,那么高手便可以构造特殊的语句使到你的程序面目全非了。
而且这种功能也没有存在的必要,利用现有功能完全可以做到你想要的效果。就像goto可以被淘汰一样。
补充:
我不知这样是不是符合你的要求:
例:对于"5+4",数字部分的解决应该没问题,只要在读时放到一个整型变量上就行了,例如放到a1,a2。对于+与*这些运算符,可以这样处理,设用char a读了一个运算符,然后通过
switch(a)
{
case '+':
c=a1+a2;
break;
case '-':
c=a1-a2;
.
.
.
default:
}
这样就可以了。

波兰 后缀 表达式
使用 栈 实现的

也可以通过分析() + - / * 等等 进行递归分析
解析 表达式 不过这样的比较麻烦
推介第一种

用栈可以实现。。。。。