将字符串转换为浮点Java

时间:2014-04-03 14:29:23

标签: java arrays string

我是Java的新手,所以这可能是一个简单的问题。

我制作了一个计算器,用户点击按钮,然后将文本输入JTextField

我使用了.getText()方法并将其保存到String

使用System.out.println()我看到String是“8 * 7 * 7-8 / 4”,显然如果我可以执行此操作并获得答案390那么这将更容易而不是分裂它,使它比看起来更复杂。

谢谢马特

3 个答案:

答案 0 :(得分:1)

您实际上可以使用内置的Java脚本引擎直接评估表达式"8*7*7-8/4"。看看this post.

另请参阅this codereview post,其中解释了如何评估字符串中存在的数学表达式的一些优点。

答案 1 :(得分:0)

您可以这样做以从字符串中获取浮点值:

Float.valueOf(string);

因此,只要用户输入数字,您就可以这样做:

//method when user inputs a number, the String input will be what the user adds
float number = Float.valueOf(input);

另外,你可以这样做:

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String input = "40+2";
System.out.println(engine.eval(input));

以上代码来自:Evaluating a math expression given in string form

答案 2 :(得分:0)

根据JDK版本将jar文件jav8-jsr223-win-amd64-0.6添加到Java8的类路径或相应的jar中,并编写以下代码

String val = "8*7*7-8/4";//make it to get from field.getText()

ScriptEngineManager engineManager = new ScriptEngineManager();
ScriptEngine engine = engineManager.getEngineByName("JavaScript");
Object result = engine.eval(val);

System.out.println(result);