java计算器源代码算法解读

问题描述

publicJsqzj(){v2.addElement(newString("init"));v.addElement(newString("init"));}publicvoidactionPerformed(ActionEvente){Stringstr=tf.getText();if(e.getActionCommand()=="+")//加号的实现;{if(("+").equals((String)v2.lastElement())||("-").equals((String)v2.lastElement())||("x").equals((String)v2.lastElement())||("/").equals((String)v2.lastElement())||("=").equals((String)v2.lastElement())){tf.setText(String.valueOf(sum));}elseif(("init").equals((String)v2.lastElement())){tf.setText(String.valueOf(sum));v2.addElement(newString("="));}else{doubled=Double.parseDouble(str);if(("+").equals((String)v.lastElement())){sum=sum+d;tf.setText(String.valueOf(sum));}elseif(("-").equals((String)v.lastElement())){sum=sum-d;tf.setText(String.valueOf(sum));}elseif(("x").equals((String)v.lastElement())){sum=sum*d;tf.setText(String.valueOf(sum));}elseif(("/").equals((String)v.lastElement())){sum=sum/d;tf.setText(String.valueOf(sum));}elseif(("=").equals((String)v.lastElement())){sum=sum+d;tf.setText(String.valueOf(sum));}else{sum=sum+d;tf.setText(String.valueOf(sum));}}v.addElement(newString("+"));v2.addElement(newString("+"));}求这段代码的详解

解决方案

解决方案二:
这个应该不难理解吧,但你的程序没有给完整啊,如addElement这个方法的实现;

时间: 2024-12-05 00:04:25

java计算器源代码算法解读的相关文章

Java实现快速排序算法(Quicktsort)

 这篇文章主要介绍了Java实现快速排序算法(Quicktsort),有需要的朋友可以参考一下 快速排序算法介绍 快速排序和归并排序都使用分治法来设计算法,区别在于归并排序把数组分为两个基本等长的子数组,分别排好序之后还要进行归并(Merge)操作,而快速排序拆分子数组的时候显得更有艺术,取一个基准元素,拆分之后基准元素左边的元素都比基准元素小,右边的元素都不小于基准元素,这样只需要分别对两个子数组排序即可,不再像归并排序一样需要归并操作.基准元素的选取对算法的效率影响很大,最好的情况是两个子数

使用java实现LIS算法,出操队形的问题_java

假设有序列:2,1,3,5,求一个最长上升子序列就是2,3,5或者1,3,5,长度都为3. LIS算法的思想是: 设存在序列a. ① 如果只有一个元素,那么最长上升子序列的长度为1: ② 如果有两个元素,那么如果a[1]>a[0],则最长上升子序列的长度为2,a[1]为该最长上升子序列的最后一个元素;若a[1]<a[0],则最长上升子序列的长度为1,a[0]和a[1]均为  其最长上升子序列的最后一个元素. ③ 如果由三个元素,那么如果a[2]>a[0],a[2]>a[1],则a[

Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析_Android

        在前面几篇文章中,我们详细介绍了Android系统进程间通信机制Binder的原理,并且深入分析了系统提供的Binder运行库和驱动程序的源代码.细心的读者会发现,这几篇文章分析的Binder接口都是基于C/C++语言来实现的,但是我们在编写应用程序都是基于Java语言的,那么,我们如何使用Java语言来使用系统的Binder机制来进行进程间通信呢?这就是本文要介绍的Android系统应用程序框架层的用Java语言来实现的Binder接口了.        熟悉Android系统

java语法问题我解读成是 类.对象.方法

问题描述 java语法问题我解读成是 类.对象.方法 DateShare.user.setId ( ); 是不是类.对象.方法 我理解有没有错,什么情况下才应该这么写,因为我一般情况下看都是 对象.方法 解决方案 DateShare.user.setId ( ); DateShare:类名 user:DataShare类中的一个静态成员变量,是一个已经初始化的对象. setId():user对象的一个方法 类似的应用场景有: System.out.println() System.err.pri

java项目源代码里面的get方法为什么总写在set方法前面

问题描述 java项目源代码里面的get方法为什么总写在set方法前面 java项目源代码里面的get方法为什么总写在set方法前面 感觉有点不符合逻辑 不是设置之后再获取吗, 解决方案 这个都是在需要的时候调用的 没有逻辑联系,就像鸡和蛋的关系一样 解决方案二: 我想了这个问题想了很久很久,在我几天几夜的挣扎中我想出了一个很有可能的结果,可能这就是最终答案. 字母g比子母s考前,所以在格式化排版的时候,把get方法排到了set方法前面.我厉害吗? 解决方案三: 和这个写的顺序完全无关.主要是看

java算法-java求教,算法竞赛入门经典 3.4 最长回文子串

问题描述 java求教,算法竞赛入门经典 3.4 最长回文子串 java新手求教,关键是怎么保存s[i]在buf中的位置,谢谢 解决方案 string longestPalindromeDP(string s) { int n = s.length(); int longestBegin = 0; int maxLen = 1; bool table[1000][1000] = {false}; for (int i = 0; i < n; i++) { table[i][i] = true;

算法 数据结构 java-以下java的最短路径算法应该如何实现

问题描述 以下java的最短路径算法应该如何实现 不知道怎么用额. 解决方案 http://blog.csdn.net/javaman_chen/article/details/8254309 解决方案二: http://download.csdn.net/detail/gareth_liao/5100648 解决方案三: 谢谢回复 解决方案四: 最短路径算法(java实现)

java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示。

问题描述 java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示. 用java编写一个算法,一个数用数组表示,执行加1操作,之后的数组用一个数表示. 解决方案 数组可以表示很多数的-你说,用一个数表示啥意思?? 解决方案二: 你应该是想要下面的实现.如果有用请采纳. import java.util.ArrayList; import java.util.List; public class TestMain { public static void main(String

java数据结构和算法 22只鞋子,拿多少次可以拿一双

问题描述 java数据结构和算法 22只鞋子,拿多少次可以拿一双 22只鞋子 5双运动鞋,4双凉鞋,2双礼服鞋放在看不到的盒子里, 一次拿一只 最少拿多少次可以拿一双鞋子(左右脚也要对应) 解决方案 假设已经拿了5只左脚的运动鞋,4只凉鞋,2只礼服鞋,那么再拿一只,一定可以组成一双鞋,所以是12次 解决方案二: 应该是12次,不信的话你在问其他人. 解决方案三: 最少几次?2最多几次?12.....