2017-01-23 7 views
-5

2x^2+3x+6のようなユーザーから与えられた数式を含む入力文字列を、forループで後で定義する変数で文字列を操作するdoubleに解析する方法を調べようとしています。基本的には 文字列を数式に変換しますか?

for(x=0;x<=100;x++){ 
    String equation = "2x^2+3x+6"; 
    double y = equation; 
    System.out.println("Your point is x: " + x +" | Y: " + y); 
} 

私はthis old postが見つかりましたがBeanSheelライブラリは、私だけが"x"のようにパラメータを指定せずに実際の数値を使用することができました。

私が達成しようとしているのは、ユーザーから与えられた機能を引き出すプログラムです。しかし、私は素敵です描画部分について

+1

答えは、指定しなかった言語によって異なります。 –

+0

申し訳ありませんが、私は質問を投稿するのは初めてです、それはjavaです、どうすれば投稿で指定できますか?おかげで –

+0

私たちは 'compiler'コースでこの問題を解決しようとしました。可能なルールから解析テーブルを作成し、入力ファイルを読み、数式方程式 –

答えて

0

xのすべての出現を数式文字列内の文字列表現xの値に置き換えることができます。それを評価するためにリンクした投稿を使用することができます。

+0

私は疑問があります。この問題のためには、 'split'を実行し、Stringbuilderを使用してStringを再構築します。どちらが効率的ですか? –

+0

両方を試してみてください。私はそれが最初に働くことを心配するだろう。 –

関連する問題