goo blog サービス終了のお知らせ 

ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Java 四則演算解析実行クラス

2006-05-31 03:16:50 | PG(Java)

Javaで四則演算の式を解釈して実行(計算)するクラスをちょっと作ってみた。
コンフィグファイルとかを読み込むルーチンを作ると、こういうのが欲しくなることがある。友人も欲しがってたし。
こういったクラスは絶対どこかで誰かが公開してると思うんだけど…なかなか見つからない。

んで自作してみると、やはりちょいと面倒ながら、面白い。字句解析や構文解析のページをちょっと調べてみると、懐かしのlexやyaccを思い出すなぁ。
今回はそんなに凝る気は無いので適当だけど、括弧の解釈部分なんかは汚くなってしまってちょっと悔しい。
でも他の演算子は比較的容易に追加できるよう作ったつもりなので、そのうちもう少し追加してみよう。

Javaには字句解析用に、StreamTokenizerというクラスがあるらしい。でも
・1つの演算子が2文字以上の場合に対応できない
・数値は自動的に判断できるが、負の符号と減算の演算子を区別できない
・エラーが起きたときに文字列のどの部分で起きたかを表示できない
といった欠点があったので、結局字句解析部分も自作してしまった。

数値判断といえば、十六進数等の文字列をintとかlongに変換するメソッドも無いんだよね…。
逆に数値を十六進数の文字列に変換したり、桁数を指定して0埋めの十進数の文字列に変換したりしたいことがたまにあるんだけど、なんでJavaには書式指定のライブラリが無いんだろうなぁ?
これも絶対どこかで誰かが公開してそうだけどー…。


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Eclipse3へ行こう | トップ | Java四則演算クラスにビット... »
最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。

PG(Java)」カテゴリの最新記事