`
galo
  • 浏览: 37464 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java中使用javascript实现计算器功能

阅读更多
不废话,直接上代码:
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实现计算器--韩顺平

    【标题】"jsp实现计算器--韩顺平"指的是使用JavaServer Pages(JSP)技术来构建一个在线计算器应用。韩顺平是一位知名的IT教育专家,他通过实例教学帮助初学者理解JSP编程。 【描述】提到的两种方法: 1. **两页法*...

    java实现多种计算器功能包含表达式

    在Java编程语言中实现一个多功能计算器,涉及到许多关键知识点,包括但不限于基础的算术运算、字符串解析、表达式求值、异常处理以及用户界面设计。下面将详细阐述这些知识点。 1. **基础算术运算**:计算器的核心...

    使用JavaScript编写的简单计算器

    简单计算器:初学JavaScript,编写了一个简单的计算器,用于平常的计算什么的还是可以的

    Extjs 计算器 javascript计算器

    在这个特定的项目中,“Extjs 计算器 javascript计算器”是利用ExtJS的XTemplate功能创建的一个模拟Windows简单计算器的Web应用。XTemplate是ExtJS提供的一种模板引擎,用于动态渲染数据到HTML元素中,使得我们可以...

    JAVA设计的win10计算器

    在本文中,我们将深入探讨如何使用Java编程语言设计一个仿照Windows 10操作系统自带的计算器应用程序。这个项目涉及到的主要知识点包括GUI设计、事件处理、数学运算和表达式求值。 首先,`Calculator.java` 文件很...

    Java调用JavaScript实现字符串计算器代码示例

    4. 在图形界面中使用JavaScript引擎:将ScriptEngine实例嵌入图形界面组件中(如文本框),实现用户输入的实时计算和结果显示。 5. 异常处理:在调用eval方法时,应使用try-catch结构处理可能的ScriptException异常...

    简易计算器java实训报告.pdf

    简易计算器java实训报告.pdf

    javascript实现计算器功能

    在JavaScript中实现一个...综上所述,实现JavaScript计算器功能需要理解JavaScript的基础语法,DOM操作,事件处理,数值和字符串处理,以及简单的CSS布局知识。通过合理地组织代码,可以创建出功能完善的计算器应用。

    JAVAScript编写的计算器

    JAVA Script编写的计算器,界面较为简单,功能较少,可供初学者参考使用

    javascripte一个简单的计算器

    JavaScript代码中,定义了一些变量和函数来实现计算器的功能。`curState`变量用于跟踪当前操作的状态,`curOper`存储了当前的运算符,`num1`用于存储计算过程中的第一个数字,`preOper`是一个布尔值,用于判断是否...

    javascript做的计算器

    用js做的一个计算器,可以用这个方法去做一个Java代码

    Java web网页计算器,简单实用,2种逻辑实现

    如果服务器端实现中使用了AJAX,那么在用户操作计算器时,页面不会刷新,而是通过XMLHttpRequest对象向服务器发送异步请求,获取计算结果,然后更新页面。这种方式提高了用户体验。 6. **错误处理** 在实际应用中...

    java web 计算器

    在Web开发领域,Java是一种广泛使用的后端编程语言,但这里的“Java”实际上可能是指在Web页面中使用的JavaScript,尽管名称有些误导,但从代码片段来看,这里主要涉及的是前端技术栈。 #### 描述:“Java Web...

    java计算器实验总结.doc

    在实验中,我们使用了JAVA语言,Swing库和ScriptEngineManager来实现计算器的功能。其中,ScriptEngineManager类是JAVA中一个script引擎管理器,可以加载和执行脚本语言,如JavaScript、Python等。我们使用...

    java计算器 网页显示

    4. **按钮和文本输入**:在网页计算器中,按钮是用户进行操作的主要方式。每个按钮都绑定一个特定的函数,当用户点击时触发对应的计算操作。同时,用户还可以直接在文本框中输入数字和运算符,这涉及到JavaScript的...

    用JS写的计算器基本功能

    在这个场景中,我们讨论的是一个使用JavaScript编写的计算器应用程序。计算器的基本功能通常包括加法、减法、乘法、除法以及可能的其他高级运算,如求平方根、指数、对数等。 首先,让我们从HTML部分开始。在"2-1....

    RPN计算器 java代码

    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实现的计算器项目是一个很好的学习资源,可以帮助开发者了解Java编程、GUI设计、事件处理以及如何将Java程序嵌入到Web页面中。同时,通过分析和修改这个项目,开发者可以进一步提升自己的编程技巧...

Global site tag (gtag.js) - Google Analytics