2017-11-15 16 views
-2

Javaでは、次のコードは動作します:オペランド記号付きの文字列をダブルに変換するにはどうすればよいですか?

double a = 15.5+0.5; 
System.out.println(a); 

これは16.0を印刷します。

、なぜ次は、実行時エラーを返しん:

String a = "15.5+0.5"; 
Double b = Double.parseDouble(a); 
System.out.println(b); 

私はエラーを与えると倍増した文字列を変換した値を計算する際に最初のように動作しないように第二の例を取得できますか?

+0

https://stackoverflow.com/questions/3422673/evaluating-a-math-expression-given-in-string-form この質問を見るとawnserは正しいはずですか? –

+0

文字列の式評価を行う方法はありますか? –

答えて

0

parseDoubleparseIntegerなどが表現評価を実行しない、彼らはいくつかの値の文字列表現から数値表現(そう"5.0"5.0に変換される)への変換を実行します。

の動作の正確な定義については、hereのドキュメントを参照してください。


あなたが式の評価を実行する場合は、逆ポーランド記法と分流ヤードアルゴリズムに見て、あるいは理想的library designed for thisことができます。また、a more "hacky" solutionを使用することもできます。

関連する問題