2013-03-14 1 views
1

У меня есть строка «a> b», и я хочу преобразовать в нормальное условное выражение. Как это сделать в Android означает использование только JSE.Как преобразовать строку в условное выражение в java (Android)?

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

Любая помощь будет оценена по достоинству.

Спасибо заранее!

+4

http://stackoverflow.com/questions/2605032/using-eval-in-java – Zutty

+0

Можно создать дубликат: http://stackoverflow.com/questions/10917878/evaluate-string-as-a-condition-java Удачи! – drtf

+1

, но javax.script.ScriptEngine и javax.script.ScriptEngineManager недоступны в android. – AndroidDev

ответ

2

Я бы рекомендовал использовать метод «помощник», который возвращает логический результат, так что оператор будет выглядеть примерно так

String abc = "a>10"; 

if(stringToConditional("a>b")) 
{ 
    //TO SOME TASK 
} 

private boolean stringToConditional(String str) 
{ 
    //code here 
} 

Оттуда, метод «помощник» может разделить строку на три части, используя регулярное выражение. Полезный, abet плотный, учебник можно найти here. Оттуда a и b могут быть проанализированы с использованием методов JSE. Это выглядит примерно так:

String a = "1.21"; 
double a1 = Double.parseDouble(a); //a1 is now equal to 1.21 

Оттуда, следующий шаг будет сравнить условную строку («>», «< =», «==» и т.д.), список известных операторов , а затем тестирование операции и возвращение результата в качестве логического возврата метода. Например:

String operator = ">="; 
if (operator.equals(">=")) 
{ 
    return a1>=b1; 
} 
... 

Надеюсь, я не был слишком неясным или не знаком. Я был бы рад разработать, уточнить или упростить. Удачи!

Смежные вопросы