不废话,直接上代码:
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对象.感兴趣玩玩的,呵呵
分享到:
相关推荐
简单计算器:初学JavaScript,编写了一个简单的计算器,用于平常的计算什么的还是可以的
分两种方法 一种是两个jsp实现一个计算器,另一种是在同一jsp中实现 并实现了验证
本文实例为大家分享了javascript实现计算器功能的具体代码,供大家参考,具体内容如下 问题描述: 1、除法操作时,如果被除数为0,则结果为0 2、结果如果为小数,最多保留小数点后两位,如2 / 3 =0.67(显示0.67)...
简易计算器java实训报告.pdf
JAVA Script编写的计算器,界面较为简单,功能较少,可供初学者参考使用
用js做的一个计算器,可以用这个方法去做一个Java代码
主要介绍了Java调用JavaScript实现字符串计算器代码示例,具有一定参考价值,需要的朋友可以了解下。
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实现简易计算器的具体代码,供大家参考,具体内容如下 功能: 1、实现单击数字按钮输入数字 2、实现基础四则运算功能,并添加必要的异常处理,例如:除数不能为零 3、实现小数点添加...
本文实例为大家介绍javascript实现简单计算器功能的详细代码,分享给大家供大家参考,具体内容如下 效果图: 实现代码: <html> <head> [removed] function calc(event){ // test //window.alert...
用javascripte制作的简单的计算器,有效果图,功能齐全
使用HTML,CSS和Javascript的简单计算器这是使用Javascript实现的简单计算器功能。 逻辑非常简单,只需最少的代码行。 执行此计算器的步骤: 下载完整代码 打开index.html。 使用的技术: HTML CSS [样式/演示文稿] ...
java课程设计报告—计算器.doc
用javascript编译的 计算器javascript脚本.html
java实验报告——简单计算器的编写.docx
JAVA保存计算过程的计算器课程设计报告.doc
全手写,绝对能用,2种实现逻辑,简单实用
1、先构思整个计算器的模式以及想要实现的功能,按模块创建相应的div,在“head”中设置其样式和布局。 2、用“input”标签创建text类型,置为输出框;依次创建buttom类型,置为按钮,内容为1、2、3……;创建“=”...
javascript计算机配件装机价格计算器
java课程设计-计算器的设计与实现.doc