我有一个字符串“a> b”,我想转换成普通的条件表达式。 如何在 Android 中执行此操作意味着仅使用JSE。
String abc = "a>10";
if(abc){
// TO SOME TASK
}
任何帮助将不胜感激。
提前谢谢你!
答案 0 :(得分:2)
我建议使用一个返回布尔结果的“helper”方法,所以语句看起来像这样
String abc = "a>10";
if(stringToConditional("a>b"))
{
//TO SOME TASK
}
private boolean stringToConditional(String str)
{
//code here
}
从那里开始,“helper”方法可以使用正则表达式将字符串拆分为三个部分。可以找到一个有用的,abet密集的教程here。从那里,可以使用JSE方法解析a和b。它看起来像这样:
String a = "1.21";
double a1 = Double.parseDouble(a); //a1 is now equal to 1.21
从那里开始,下一步是将条件字符串(“>”,“< =”,“==”等)与已知运算符列表进行比较,然后测试操作并返回结果作为方法的布尔返回。例如:
String operator = ">=";
if (operator.equals(">="))
{
return a1>=b1;
}
...
希望我不太清楚或不合适。我很乐意详细说明,澄清或简化。祝你好运!
答案 1 :(得分:0)
在Java中,我们可以使用@Brian:
String condExptn="34>5&&78<90";
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
result = engine.eval(condExptn.toString().trim());