永发信息网

java程序的小问题

答案:6  悬赏:30  手机版
解决时间 2021-01-04 08:27
比如有if(A>B)其中A,>,B都在一个列表里面存着。
我想完成类似if(conditionsList.get(0)conditionsList.get(1)conditionsList.get(2))?我只能变成if(conditionsList.get(0)>conditionsList.get(2)),但有可能这个不是>而是别的符号比如<,&&,||,希望一行就能写这个if句,还是只能这样写:
if(conditionsList.get(1).equals(">")){
if(conditionsList.get(0)>conditionsList.get(2)){
dosomething..
}
}else if(conditionsList.get(1).equals("<")){
if(conditionsList.get(0) dosomething..
}
}else if(conditionsList.get(1).equals("&&")){
if(conditionsList.get(0).equals(conditionsList.get(2))){
dosomething..
}
}...

但我用的时候其实有很多的条件都存在这个列表,这样写排列组合起来if判断就太多了啊。。有没有什么办法。。。
最佳答案
这不是“小问题”呢。
我第一感觉是,这得用抽象语法树来解决。这个树会把符号及其符号的左右两边都收集整理好,你只需处理具体逻辑即可。但这个难度对你来说是不是更高了一点?
另外,你的穷觉的做法,虽然不优雅,但在需求明确范围之内,其实是可解的。
全部回答
你可以考虑一下递归
办法是有的,js eval函数可以对一段字符串进行计算,java可以调用js。 代码如下 public class Demo { static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript"); public static void main(String[] args) { List list = new ArrayList(); list.add("2"); list.add("+"); list.add("3"); String strs = list.get(0)+list.get(1)+list.get(2); try { System.out.println(jse.eval(strs)); } catch (Exception t) { } } } 望采纳

这个代码应该是错误的吧?

改为:

alfa a1 = new alfa();
alfa a2 = new beta(0);

beta a3 = new beta(0);

x 处总共创建了7个,其中三个被继承覆盖了!一个在构造函数中创建,由于是基本数据类型,所以java会从传递进来的值 复制一份放到参数n中,而不是引用!(提示,构造函数中不允许有返回值所以应该去掉void)

按这样的话 a1对象保存了 3个int 由于这是基本数据类型,所以不会想引用类型(没有值则不分配内存,或引用其他对象内存)

java有JEval等一类的表达式计算的类库,直接把表达式座位参数传入就能计算出结果,具体你可以了解一下,不止一种哦,选一种你觉得好用的就行。 附链接:网页链接
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
百家村派出所地址在哪?我要去那里办事
2012年奥运会将在伦敦举行。我校组织了“到伦
初至西湖记与湖心亭看雪相比,在写景上有何不
一盏电灯连在电压是220伏的电路中,灯泡中通
岑夫子,丹丘生,将进酒,杯莫停。与君歌一曲
《民法通则》第11,12条内容是什么?
郝村派出所地址在什么地方?想过去办事
如何办一份外语版的a4纸八页的英语书
—Onmywayhome。Isawanalien intoashop.Is
在3,-3,0,-1这四个数中,绝对值最小的数是
简易素三明治的做法,简易素三明治怎么做好吃
化林路派出所地址在哪?我要去那里办事
名著导读。(4分)皇帝的野心很大,他要再找
北京哪里有好玩的电动游戏,最好是在朝阳区附
下列对独立自主这一基本立场的理解,不正确的
推荐资讯
如图所示的路程和时间之问成________比例关系
初中生上什么技校好啊
1935年,大学问家胡适登临西天目山游江南名刹
尼日利亚手机频段是多少?
单选题Tomlikes________makeatoybed__
Theoldmanwasoftenseen________the
奉新县文化局办公地址在什么地方?我要处理点
为什么不多研究地下?,为什么不去钻到地幔、
云南省简称源自A.滇池?云岭B.洱海?云贵高原C.
拆除植草砖套什么定额
刚买的红米note4,在设置中只有《锁屏和密码》
单选题“All _____ present and&nb
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?