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

JAVA计算器

 
阅读更多

问题描述:

 * 1、给出一个算数表达式,计算该表达式的结果.

 * 2、表达式格式为:数字字符 ‘0’....到'9',运算符'+','*' 组成。

 * 3、要求,不要调用任何的api来实现 ,使用简单的加减乘除操作来完成。

/**
 *问题描述:
 * 1、给出一个算数表达式,计算该表达式的结果.
 * 2、表达式格式为:数字字符 ‘0’....到'9',运算符'+','*' 组成。
 * 3、要求,不要调用任何的api来实现 ,使用简单的加减乘除操作来完成。
 *
 * 解题思路:
 * 1、扫描表达式,对于加法操作可以直接相加,对于乘法操作,先计算乘法表达式的值,然后再相加到结果集中去。
 */

/**
 * User: wb-cuitongxin
 * Date: 13-6-13
 */
public class CaculateChar {

    public static void main(String[] args) {

        //需要计算结果的表达式
        String expression = "2*3*2+1+2+3*2*2*2";

        //调用方法并且计算结果
        int result = caculateExpression(expression);

        System.out.println(result);
    }

    private static int caculateExpression(String expression) {
        char[] ca = expression.toCharArray();
        int length = ca.length;  //表达式的总体长度
        int sum = 0; //存放加法的结果集
        int multiplication = 1; //存放乘法的结果集
        int i = 1;  //循环字符串的开始下标
        //循环字符串求结果
        while (i<length) {
            //如果当前字符是 乘法符号 '*'
            if(ca[i] == '*') {
                multiplication = ca[i-1] - 48; //把乘号前面的值赋值给--乘法基数变量
                multiplication = multiplication * (ca[i+1] - 48); // 乘号两边的数字相乘
                //判断是否存在连乘的情况
                int j = i+2; //取当前乘号的下一个符号
                while (j<length && ca[j] == '*') {    //如果当前符号的下一个符号是'*' 表示是连乘
                    multiplication = multiplication * (ca[j+1]-48);   //计算连乘的结果
                    j = j+2;                                              //移动连乘的下标
                }
                sum = sum + multiplication; //把乘法的结果加到总的结果中
                i = j;
                continue;
            }
            //如果当前符号是'+'号
            if (ca[i] == '+') {
                //如果表达式的第一个符号元素是'+',则直接把该符号前面的元素放入结果集中去
                if (i==1) {
                    sum = sum + (ca[i-1] - 48);
                    i = i + 2;
                    continue;
                }
                if (ca[i-2] == '+') {
                    sum = sum + (ca[i-1] - 48);
                    i = i + 2;
                    if (i == length) {
                        sum = sum + (ca[i-1] - 48);
                        break;
                    }
                    continue;
                }
                //如果倒数第二个符号是'+'号,则直接把数字加入到结果集中即可
                if (i == ca.length - 2) {
                    sum = sum + (ca[i+1] - 48);
                    i = i + 2;
                    break;
                }
                int j = i+2;
                while (j<length && ca[j] == '+') {
                    sum = sum + (ca[j-1] - 48);
                    j = j + 2;
                }
                i = j;
                continue;
            }
        }
        return sum;
    }

}

 目前这是第一个版本,之后会实现第二个版本

 

分享到:
评论

相关推荐

    java计算器代码(gui界面)

    java计算器代码,初学者专用java计算器代码,初学者专用java计算器代码,初学者专用java计算器代码,初学者专用java计算器代码,初学者专用java计算器代码,初学者专用java计算器代码,初学者专用

    JAVA计算器 报告和程序

    JAVA 计算器 实验报告书,内附完整代码,可用。

    java计算器java计算器

    java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器java计算器

    java计算器实验报告

    在这个“Java计算器实验报告”中,我们探讨了一个基于Java编程语言的计算器应用程序的开发过程。这个实验的主要目标是设计一个用户界面,实现基本的数学运算,包括加法、减法、乘法和除法,同时处理可能出现的异常...

    java 计算器(已实现)

    java 计算器java 计算器java 计算器java 计算器java 计算器java 计算器java 计算器java 计算器java 计算器

    java计算器程序代码

    Java 计算器程序代码解析 Java 计算器程序代码是 Java 课上老师提供的编译源代码,内容详细,适合研究学习。下面对代码的标题、描述、标签和部分内容进行详细解析。 标题解析 Java 计算器程序代码的标题为“Java ...

    java计算器,带历史记录功能

    在这个项目中,我们看到的"java计算器,带历史记录功能"显然包含了一个核心的类——`Computer.java`,这个类可能实现了计算器的所有逻辑和界面。 首先,`Computer.java`文件很可能是主程序的入口点,它可能继承自...

    用AWT包实现的JAVA计算器

    本项目“用AWT包实现的JAVA计算器”旨在通过AWT来构建一个功能完备的计算器应用。下面将详细介绍这个项目中的关键知识点。 1. **AWT组件**: - AWT提供了各种基本组件,如按钮(Button)、文本字段(TextField)、...

    java计算器+报告

    【标题】"java计算器+报告"揭示了这个项目的核心内容,即一个用Java语言实现的计算器程序,并且包含了相应的项目报告。这表明该程序不仅是一个简单的计算工具,可能还涉及了高级功能,如复杂数学运算、图形界面或者...

    java计算器 期末作业

    【Java计算器实现详解】 在Java编程的学习过程中,创建一个计算器是一项常见的练习任务,它能帮助学生深入理解面向对象编程的概念,以及如何处理用户输入和输出。这个“java计算器”项目,作为期末作业,旨在检验...

    JAVA计算器 课程设计报告

    《JAVA计算器课程设计详解》 在计算机编程领域,设计并实现一个计算器程序是常见的课程设计任务,这有助于学习者深入理解编程语言的基本语法和逻辑控制。在这个Java计算器课程设计报告中,我们将探讨如何构建一个...

    Java计算器实训报告

    Java计算器实训报告旨在通过设计和实现一个计算器程序,让学生深入理解和掌握Java编程语言以及面向对象设计的基本原理。这个计算器分为普通计算器和科学计算器两种模式,提供了丰富的数学运算功能。 在需求分析部分...

    手机上的JAVA计算器

    Java计算器是基于Java编程语言开发的一款简单应用,适用于智能手机用户。它通常包含了基本的数学运算功能,如加、减、乘、除,以及可能的更高级功能,如求平方根、指数运算、对数等。在Java中实现计算器涉及到许多...

    java 计算器 源代码

    Java计算器源代码是一个典型的编程项目,它展示了如何在Java中实现一个简单的图形用户界面(GUI)应用程序,用于执行基本的算术运算。这个项目通常包括加、减、乘、除等基本功能,以及可能的括号支持和错误处理。...

    java 计算器 实验报告

    **实验报告:简易Java计算器制作** 一、实验目的及要求 本实验旨在加深对Java编程语言的理解,特别是其面向对象编程特性。通过设计并实现一个简单的计算器,学习者将掌握以下知识点: 1. Java基本语法:包括变量...

    带有清零功能的小型JAVA计算器完整源代码!

    Java 计算器完整源代码实现详解 在本资源中,我们将实现一个完整的 Java 计算器应用程序,该应用程序具有基本的计算功能,如加、减、乘、除、清零等。下面我们将详细解释该应用程序的实现细节。 Java Swing 框架 ...

    Calculator_java计算器_

    在本项目中,我们讨论的是一个使用Java编程...以上就是构建一个Java计算器应用时涉及的主要技术点。通过这个项目,开发者可以巩固对Java语言的理解,增强面向对象编程的实践能力,以及提升处理用户输入和异常的能力。

    java 计算器 小程序(精简版)

    通过以上知识点的解释,我们可以理解这个Java计算器小程序的基本工作原理。实际的源代码会包含类定义、方法实现以及具体的逻辑处理,对于学习Java编程和理解程序设计思路是非常有价值的。如果你对Java编程感兴趣,...

    简易计算器.rar_java 计算器_java 计算_java计算器_计算器

    【描述】"简易的JAVA计算器" 提供了一个直观的示例,展示了如何在Java中设计一个用户界面以及处理用户的输入和输出。这个项目可能包含了一个独立的源代码文件(Calculator.java)和编译后的类文件(Calculator.class...

Global site tag (gtag.js) - Google Analytics