不废话,直接上代码:
package org.galo.thread;
import java.util.Scanner;
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class Calculator {
private static final String WELCOME_MESSAGE = "请输入计算表达式:(或'exit'退出)";
private static final String EXIT_MESSAGE = "系统正在退出,请稍后";
private static final String QUIT_MESSAGE = "感谢您的使用,再见!";
private static final String ERROR_MESSAGE = "[表达式语法错误]请输入:(或'exit'退出)";
public static void main(String[] args) {
sayWelcome();
main();
}
public static void main() {
Scanner scanner = new Scanner(System.in);
println(WELCOME_MESSAGE);
while(scanner.hasNext()){
String exp = scanner.next();
long startTime = System.currentTimeMillis();
if("exit".equals(exp)){
doExit();
return;
}
String result = evalJS(exp);
if(result == null){
continue;
}
long endTime = System.currentTimeMillis();
println("计算结果:" + result + " ;用时:" + (endTime - startTime) + "ms");
println("");
println(WELCOME_MESSAGE);
}
}
private static void doExit() {
print(EXIT_MESSAGE);
for (int i = 0; i < 6; i++) {
try {
Thread.sleep(500);
print(".");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
println("");
println(QUIT_MESSAGE);
}
public static void sayWelcome() {
println("****************************");
println("*******JAVA计算器V0.1********");
println("**********欢迎使用************");
println("****************************");
}
private static String evalJS(String exp) {
Double result;
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("javascript");
String script = "function compute(){return " +
exp +
"};";
try {
se.eval(script);
Invocable invocable = (Invocable) se;
result = (Double) invocable.invokeFunction("compute", new Object[]{});
return result.toString();
} catch (ScriptException e) {
println("");
println(ERROR_MESSAGE);
return null;
} catch (NoSuchMethodException e) {
println("");
println(ERROR_MESSAGE);
return null;
}
}
public static void println(String word){
System.out.println(word);
}
public static void print(String word){
System.out.print(word);
}
}
还有java中的javascript中调用java对象.感兴趣玩玩的,呵呵
分享到:
相关推荐
【标题】"jsp实现计算器--韩顺平"指的是使用JavaServer Pages(JSP)技术来构建一个在线计算器应用。韩顺平是一位知名的IT教育专家,他通过实例教学帮助初学者理解JSP编程。 【描述】提到的两种方法: 1. **两页法*...
在Java编程语言中实现一个多功能计算器,涉及到许多关键知识点,包括但不限于基础的算术运算、字符串解析、表达式求值、异常处理以及用户界面设计。下面将详细阐述这些知识点。 1. **基础算术运算**:计算器的核心...
简单计算器:初学JavaScript,编写了一个简单的计算器,用于平常的计算什么的还是可以的
在这个特定的项目中,“Extjs 计算器 javascript计算器”是利用ExtJS的XTemplate功能创建的一个模拟Windows简单计算器的Web应用。XTemplate是ExtJS提供的一种模板引擎,用于动态渲染数据到HTML元素中,使得我们可以...
在本文中,我们将深入探讨如何使用Java编程语言设计一个仿照Windows 10操作系统自带的计算器应用程序。这个项目涉及到的主要知识点包括GUI设计、事件处理、数学运算和表达式求值。 首先,`Calculator.java` 文件很...
4. 在图形界面中使用JavaScript引擎:将ScriptEngine实例嵌入图形界面组件中(如文本框),实现用户输入的实时计算和结果显示。 5. 异常处理:在调用eval方法时,应使用try-catch结构处理可能的ScriptException异常...
简易计算器java实训报告.pdf
在JavaScript中实现一个...综上所述,实现JavaScript计算器功能需要理解JavaScript的基础语法,DOM操作,事件处理,数值和字符串处理,以及简单的CSS布局知识。通过合理地组织代码,可以创建出功能完善的计算器应用。
JAVA Script编写的计算器,界面较为简单,功能较少,可供初学者参考使用
JavaScript代码中,定义了一些变量和函数来实现计算器的功能。`curState`变量用于跟踪当前操作的状态,`curOper`存储了当前的运算符,`num1`用于存储计算过程中的第一个数字,`preOper`是一个布尔值,用于判断是否...
用js做的一个计算器,可以用这个方法去做一个Java代码
如果服务器端实现中使用了AJAX,那么在用户操作计算器时,页面不会刷新,而是通过XMLHttpRequest对象向服务器发送异步请求,获取计算结果,然后更新页面。这种方式提高了用户体验。 6. **错误处理** 在实际应用中...
在Web开发领域,Java是一种广泛使用的后端编程语言,但这里的“Java”实际上可能是指在Web页面中使用的JavaScript,尽管名称有些误导,但从代码片段来看,这里主要涉及的是前端技术栈。 #### 描述:“Java Web...
在实验中,我们使用了JAVA语言,Swing库和ScriptEngineManager来实现计算器的功能。其中,ScriptEngineManager类是JAVA中一个script引擎管理器,可以加载和执行脚本语言,如JavaScript、Python等。我们使用...
4. **按钮和文本输入**:在网页计算器中,按钮是用户进行操作的主要方式。每个按钮都绑定一个特定的函数,当用户点击时触发对应的计算操作。同时,用户还可以直接在文本框中输入数字和运算符,这涉及到JavaScript的...
在这个场景中,我们讨论的是一个使用JavaScript编写的计算器应用程序。计算器的基本功能通常包括加法、减法、乘法、除法以及可能的其他高级运算,如求平方根、指数、对数等。 首先,让我们从HTML部分开始。在"2-1....
RPN计算器 Program Input Each line of the input file (prob12.in) contains a series of numbers and operators. The program must evaluate these lines as RPN expressions. All tokens are separated by one ...
JavaScript则负责处理用户交互,实现计算器的各种功能;而CSS则用来美化界面,使计算器更加易用且吸引人。 综合以上信息,我们可以推断这个“多功能网页仿真计算器”是一个集成了多种数学运算、进制转换、双屏显示...
总的来说,这个Java实现的计算器项目是一个很好的学习资源,可以帮助开发者了解Java编程、GUI设计、事件处理以及如何将Java程序嵌入到Web页面中。同时,通过分析和修改这个项目,开发者可以进一步提升自己的编程技巧...