如何在java(Android)中将字符串转换为条件表达式?

时间:2013-03-14 09:46:26

标签: java android string conditional-statements

我有一个字符串“a> b”,我想转换成普通的条件表达式。 如何在 Android 中执行此操作意味着仅使用JSE。

String abc = "a>10";
if(abc){
 // TO SOME TASK
}

任何帮助将不胜感激。

提前谢谢你!

2 个答案:

答案 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());