mXparserを使ってみました。
mXparserとは
Stringで諸々を入力してやることで数式を計算できるライブラリです。Javaや.Net、AndroidやXamarinといった多くの環境で動きます。Javaで動くので当然Kotlinでも動きます。
機能も充実しており、大体の計算はできます。
詳しくは公式ページを参照してください。
やったこと
練習がてら以下の画像*1の例をKotlinに写経しました。
ソースコード
import org.mariuszgromada.math.mxparser.*; fun main(args:Array<String>) { /* * 三角形の面積 */ val At = Function("At(b, h) = 1/2 * b * h") //関数を設定 val e1 = Expression("At(2, 4)", At) //実行内容を設定 mXparser.consolePrintln(e1.expressionString + " = " + e1.calculate()) //実行と出力 var b = Argument("b = 3") //引数を設定 var h = Argument("h = 10") var e2 = Expression("At(b, h)", At, b, h) //引数をセット mXparser.consolePrint(e2.expressionString + " = " + e2.calculate()) //実行と出力 }
実行結果
[mXparser-v.4.1.1] At(2, 4) = 4.0 [mXparser-v.4.1.1] At(b, h) = 15.0
導入方法
Intelij IDEAでの導入方法です。というか.jarの導入方法です。
ダウンロードページから.zipを落としてきて、中身をどこかに解凍します。
解凍したディレクトリから[path to dir]MathParser.org-mXparser-[version]/bin-only/jdk.1.8/MathParser.org-mXparser-jdk18-[version].jar
を探し、以下の手順で導入できます。
stackoverflow.com