我是Java的新手,所以这可能是一个简单的问题。
我制作了一个计算器,用户点击按钮,然后将文本输入JTextField
。
我使用了.getText()
方法并将其保存到String
。
使用System.out.println()
我看到String
是“8 * 7 * 7-8 / 4”,显然如果我可以执行此操作并获得答案390那么这将更容易而不是分裂它,使它比看起来更复杂。
谢谢马特
答案 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));
答案 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);