java程序的小问题
发布网友
发布时间:2023-02-01 07:49
我来回答
共5个回答
热心网友
时间:2024-03-16 09:59
我觉得问题就在于,就算if(conditionsList.get(0)conditionsList.get(1)conditionsList.get(2))可以执行,你还不是要根据具体情况去写代码,你还是要知道get(1)的值是什么才可以写代码啊,你怎么选择判断?这里我给出一个简单解决方法,你可以参考一下,
整体思路是:
通过生成文本文件来完成if(conditionsList.get(0)conditionsList.get(1)conditionsList.get(2))这样的代码书写
if(变量1,变量2,变量3),这样根据列表就可以填充文本文件,后缀为xxx.java,这样就可以编译并执行了。
至于dosomething也不过是一段文本,可以放在一个Map<String,String>里面,key就是你的这些符号,value就是你的dosomething代码
热心网友
时间:2024-03-16 09:59
办法是有的,js eval函数可以对一段字符串进行计算,java可以调用js。 代码如下
public class Demo {
static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
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) {
}
}
}
望采纳
热心网友
时间:2024-03-16 09:59
这不是“小问题”呢。
我第一感觉是,这得用抽象语法树来解决。这个树会把符号及其符号的左右两边都收集整理好,你只需处理具体逻辑即可。但这个难度对你来说是不是更高了一点?
另外,你的穷觉的做法,虽然不优雅,但在需求明确范围之内,其实是可解的。
热心网友
时间:2024-03-16 10:00
java有JEval等一类的表达式计算的类库,直接把表达式座位参数传入就能计算出结果,具体你可以了解一下,不止一种哦,选一种你觉得好用的就行。
附链接:网页链接
热心网友
时间:2024-03-16 10:01
if(conditionsList.get(0)conditionsList.get(1)conditionsList.get(2))? 这是个什么几把啊?我看不懂你想表达什么呢?如果你想判断两个变量之间的与或非关系用比较器啊,compareable不是公共接口吗