Java:数式を入力、保存、評価できるツールはありますか?
質問
非常に初歩的なものでも結構です。 x + 1のようなものを入力して評価するように、xは指定する変数です。
各式に文字列を使用した独自の記述、それらの解析用の正規表現などを考えていましたが、私の目標は私が逃げることができるほど怠laであること、そして別のオプションがある場合(特に正式なもの)、代わりにそれを使用することをお勧めします。
このようなことをするものはありますか?
解決
Javaのスクリプティングの使用を検討できます。 6.参照JDKにはJavaScript実装が付属しており、他の言語もプラグインできます。
他のヒント
次のライブラリを知っています:
-
Symja Parser (Apacheライセンス)はMathematicaのような構文をサポートしています
-
JParser (BSDライセンス)
-
Jep-Java Math Expression Parser (商用-GNU Public Licenseの下の古いバージョン?)
-
JFormula (商用)
-
JEval (Apacheライセンス)
-
MathEval-Math Expression Evaluator (パブリックドメインおよび非常に小さなフットプリント)
数年前に JEP を使用しましたが、まだ成功しているようです積極的に開発されました。当時彼らはより寛容なライセンスを持っていたと思いますが、おそらくあなた自身でコーディングするよりも安いでしょう(正確なニーズとスキルに依存します)。
私は、これをLex / YACCの学習例として、まさに自分で行うためのJavaライブラリを構築しました。より大きなプロジェクトに組み込まれ、うまく機能しているようです。大規模なプロジェクトを再び開始する場合、上記のアドバイスに従い、Javaスクリプトエンジンを使用します。
LibFormula を試してみてください。 OpenDocumentのOpenFormula標準。
OpenFormulaはスプレッドシートアプリケーション用に作成され、Excel式に近い構文を使用します。詳細は、 Pentaho-Wiki
をご覧ください。サンプル:
=[x]+1
exp4j をチェックアウトできます。 Apache License 2.0 。 dijkstraのシャンティングヤードアルゴリズムを実装し、 f(x、foo)= log(foo ^(x ^ -1))
formula4j という新しいツールに興味があるかもしれません。
商用であるため、万人向けではありません。
多分 MathML ?
MathMLは、マシン間通信の基礎として数学を記述するための低レベルの仕様であり、Webページに数式を含めるために非常に必要な基盤を提供します。また、科学技術向けのワークフローを公開する場合や、数学をソフトウェアで処理する必要がある場合は重要です。新しいバージョンでは、たとえば、数学のアクセシビリティ、および右から左に記述された言語の数式の改善がもたらされます。コミュニティは7年の経験があるため、基本的なマークアップは同じままです。