2017-04-04 18 views
-4

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)); 
} 
+1

1.このコードはコンパイルされません( 'replace'は未定義ですが、メソッド外の' System.out.println')。 2.期待された、実際のアウトプット(そしてどんなインプットのために)が何であるかは不明です。 http://stackoverflow.com/help/mcve –

+0

ユーザーが「z」を未知数として入力した場合はどうなりますか?複数の不明な点がある場合はどうなりますか?良いコンセプトではありません。 – duffymo

答えて

0

を評価しません。あなたはint型の代わりに文字列としてのxを持ってしてみましたか?

int x = sc.nextIn();

それとも

文字列のx = sc.nextLine()int型のXの文字列を解析することができます。 int xx = Integer.parseInt(x);

ちょっとした提案です。

関連する問題