我是Java新手,所以这可能是一个简单的问题。
我已经制作了一个计算器,用户单击按钮,它就会将文本输入到JTextField中。
我使用了.getText()方法并将其保存到String中。
使用System.out.println()我已经看到String是"8*7*7-8/4",显然,如果我能执行它并得到答案390,那么这将比拆分它并使其比看起来更复杂要容易得多。
谢谢,马特
发布于 2014-04-03 22:34:35
实际上,您可以使用内置的Java script引擎直接计算表达式"8*7*7-8/4"。看一看this post.
还可以看看this codereview post,它解释了如何计算字符串中的数学表达式的一些优点。
发布于 2014-04-03 22:51:23
您可以这样做,以从字符串中获取浮点值:
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));发布于 2014-04-03 23:16:27
根据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);https://stackoverflow.com/questions/22840770
复制相似问题