将字符串转换为公式
问题描述:
我试图使用ScriptEngine将字符串转换为公式。 我的代码要求一个线性方程和一个X值。之后,它将替换x的值。 当我尝试后加“*”,“()”这是行不通的,因此它不评估串式将字符串转换为公式
package known;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import java.util.Scanner;
import static java.util.stream.DoubleStream.concat;
import javax.script.ScriptException;
/**
*
* @author netof
*/
public class Known {
/**3
* @param args the command line arguments
*/
public static void main(String[] args) throws ScriptException {
System.out.println("Insert your equation");
Scanner sc = new Scanner(System.in);
String equation = sc.nextLine();
System.out.println("Insert value for X");
String x = sc.nextLine();
System.out.println();
String test = equation.replace("x","("+x+")");
if(test.contains("("+x+")")){
String replace = test.replace("("+")", "*");
System.out.println(replace);
}else{
System.out.println("Can't Replace");
}
}
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String convert = replace;
System.out.println(engine.eval(replace));
}
答
你试图让X为INT而不是字符串?
int x = sc.nextIn();
或者,可以分析该字符串x作为INT
序列X = sc.nextLine(); int xx = Integer.parseInt(x);
只是几个建议。
1.此代码无法编译('replace'未定义,'System.out.println'在方法外)。 2.目前尚不清楚预期产出和实际产出(以及投入)。 http://*.com/help/mcve –
如果用户输入“z”作为未知,该怎么办?如果有不止一个未知数呢?不是一个好的概念。 – duffymo