站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题问一个正则表达式的问题

问一个正则表达式的问题

摘要: 问一个正则表达式的问题


int a,b,c,d;
a=10; b=2; c=3;
d=a-b*c;
System.out.println(d);
这种情况下d的值是正确的
如果a-b*c作为公式从数据库或文本文件中取出(假设是String类型)

如何保持d的值正确呢?
java有没有办法实现,不用数据结构的办法和迂回向下的办法。。。。




关注!!


肯定要自己写个辅助方法
如果公式是另外读入的话,变量都没有怎么计算


int a=1;
int b=2;
String str=-#34;a*b-#34;;
str=str.replaceAll(-#34;a-#34;,a+-#34;-#34;);
str=str.replaceAll(-#34;b-#34;,b+-#34;-#34;);
Interpreter i = new Interpreter();
try {
Object result = i.eval(str);
System.out.println(-#34;Result is -#34; + result.toString());
}
catch (EvalError e) {
System.out.println(-#34;eval error-#34;);
}


不知道楼上在写什么


此类Interpreter要到下面的网站下载插件
http://www.beanshell.org/download.html


int a=1;
int b=2;
String str=-#34;a*b-#34;;//公式
str=str.replaceAll(-#34;a-#34;,a+-#34;-#34;);//把公式里的变量替换成值
str=str.replaceAll(-#34;b-#34;,b+-#34;-#34;);//把公式里的变量替换成值
Interpreter i = new Interpreter();//创建计算表达式字符串对象
try {
Object result = i.eval(str);//调用方法eval()计算字符串表达式,得到计算结果result
System.out.println(-#34;Result is -#34; + result.toString());//输出结果
}
catch (EvalError e) {
System.out.println(-#34;eval error-#34;);//表达式有错
}


谢谢lip009和各位

是不是说java语言本身是无法解决这类问题,只有通过编写其他程序来解决,通过数据结构的办法和迂回向下的办法都可以解决,而且不是很难,没有必要下插件




楼主,什么是数据结构的办法和迂回向下的办法,能指教一下吗?


数据结构用堆栈
迂回向下是java编程艺术上的方法,网上有下载

我想知道语言本身有没有这种功能来实现


语言本身好像是没有这种方法,就像javascript里的eval一样


up


↑返回目录
前一篇: 0到10之间数自动增减,关于多线程的问题??
后一篇: 问一个正则表达式的问题