-1

さて、私は最近 Java コーディングを学び始めましたが、解決する必要がある問題がいくつかあります。

内部に特別なパラメーターを含む文字列を変換するときに、この問題が発生しました (例: "3^5+7*10" または "(1/2)")。このような場合、Integer.parseInt は、数値がサポートされていないことを示すエラーを返します。実際のコードは次のとおりです。

int i = Integer.parseInt("5*3^2+3^2");

前もって感謝します :)

更新:変換を行うために使用できる別のライブラリはありますか?私の知る限り、これは C# では非常に簡単でした。

4

4 に答える 4

4

そのような式をparseIntに送信することはできません。これは、数値の特定の文字列表現を整数に変換するように設計されています。式の解を取得してから、結果をparseIntに渡す必要があります。ただし、Javaコードで解決策を入手した場合は、とにかくその時点で数値になります。

于 2013-02-27T16:29:30.607 に答える
2

自分で文字列を解析して評価するコードを書く必要があります。私は個人的にそれをトークンに分割して評価します。

別の方法として、Java のスクリプト機能を使用してこれを行う例を示します。 Java の代数方程式パーサー

于 2013-02-28T10:32:02.357 に答える
0

これは、parseIntが正しい数値の文字列値を解析するためです。これは完全な数式です。

文字列は、その内部で数学演算を計算できません。これは、文字列が知っている文字とその他の文字だけであるためです。

于 2013-02-27T16:29:47.160 に答える
0

わかりました、自分で解決策を見つけました。JDK 1.6 では、このような変換で C# と同じくらい強力な JavaScript を使用できます。Javaを使用するのはとても悪いことです。ほとんどのプログラマーが C++ を使用するのには理由があると思います。ここで実際の回答を表示できます。また、賛成票を投じることを忘れないでください。

于 2013-02-27T18:27:00.340 に答える