首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将string转换为float Java

将string转换为float Java
EN

Stack Overflow用户
提问于 2014-04-03 22:29:23
回答 3查看 163关注 0票数 0

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

我已经制作了一个计算器,用户单击按钮,它就会将文本输入到JTextField中。

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

使用System.out.println()我已经看到String是"8*7*7-8/4",显然,如果我能执行它并得到答案390,那么这将比拆分它并使其比看起来更复杂要容易得多。

谢谢,马特

EN

回答 3

Stack Overflow用户

发布于 2014-04-03 22:34:35

实际上,您可以使用内置的Java script引擎直接计算表达式"8*7*7-8/4"。看一看this post.

还可以看看this codereview post,它解释了如何计算字符串中的数学表达式的一些优点。

票数 1
EN

Stack Overflow用户

发布于 2014-04-03 22:51:23

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

代码语言:javascript
复制
Float.valueOf(string);

因此,每当用户输入数字时,您都可以这样做:

代码语言:javascript
复制
//method when user inputs a number, the String input will be what the user adds
float number = Float.valueOf(input);

此外,您还可以这样做:

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2014-04-03 23:16:27

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

代码语言:javascript
复制
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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22840770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档