I have little confused with check the logical value true or false here. Sorry, I am just growing in java.
IF
if(28 >= 25 && 28 <= 30){
System.out.println("OK");
}
result print OK in output. but i have actual value is like this:
String value="28 >= 25 && 28 <= 30";
if i do same thing above like this
if(value){
System.out.println("OK OK");
}
value doesnot recognize . How do i check above value string . Do you have any idea please sharing with me? i am very new .
Edit: I followed by @suren's answers. Actually getting not error in java with using android getting java.lang.NoClassDefFoundError: javax.script.ScriptEngineManager
.
Used Java version: 1.6.0
java:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class TEST {
public static void main(String[] args) {
String log="28 >= 25 && 28 <= 30";
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
Boolean result = (Boolean) engine.eval(log);
if (result) {
System.out.println("OK OK");
}
} catch (ScriptException e) {
e.printStackTrace();
}
}}
In ANdroid:
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class TEST {
public static boolean checkValid(String pstring) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
try {
Boolean result = (Boolean) engine.eval(pstring);
if (result) {
System.out.println("OK OK");
return true;
}else {
return false;
}
} catch (ScriptException e) {
e.printStackTrace();
}
return false;
}
}
and call in Main:
public class EditBox extends LinearLayout implements View.OnTouchListener {
String v="28 >= 25 && 28 <= 30";
Log.i("Type", "=="+TEST.checkValid(v));
}
Getting error, java.lang.NoClassDefFoundError: javax.script.ScriptEngineManager
I am also trying to using javacomplier:
String value="28 >= 25 && 28 <= 30";
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
int compilationResult = compiler.run(null, null, null,value);
if(compilationResult == 0){
System.out.println("Compilation is successful");
}else{
System.out.println("Compilation Failed");
}
but here i got: Exception in thread "main" java.lang.NullPointerException
Final Edit(Working):
Interpreter interpreter = new Interpreter();
try{
Object obj = interpreter.eval(inputstring);
if (obj.toString().equalsIgnoreCase("true")){
return true;
}else{
return false;
}
}catch (EvalError e1){
e1.printStackTrace();
}