问题描述:
* 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计算器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计算器课程设计报告---模拟科学计算器[16页].doc.docxJava计算器课程设计报告---模拟科学计算器[16页].doc.docxJava计算器课程设计报告---模拟科学计算器[16页].doc.docxJava计算器课程设计报告---模拟科学...
java计算器代码java计算器代码java计算器代码java计算器代码java计算器代码java计算器代码java计算器代码java计算器代码java计算器代码
自己做的java计算器,带有历史记录功能,欢迎大家讨论
用AWT把实现的JAVA计算器
java 计算器 源代码 java 计算器 源代码 java 计算器 源代码
java计算器+报告 代码完美运行 报告更加给力
java计算器
java计算器,有架构的。。。java计算器,有架构的。。。java计算器,有架构的。。。java计算器,有架构的。。。java计算器,有架构的。。。java计算器,有架构的。。。java计算器,有架构的。。。java计算器,有架构...
Java计算器小程序 附文档,一个课程设计作品,实现图形界面的计算器,界面部分主要采用了NetBeans中的控件及按钮,计算器基本功能有:加、减、乘、除基本算术运算,附有详细的设计文档和说明。在设计过程中还参考了...
按照实验要求,用java编辑简单计算器界面,并可以连续计算+、-、*、/等简单的数据运算
java计算器 加减乘除 .该程序实现带有优先级的数学运算,支持的运算包括加、减、乘、除、乘方、开方运算,并支持括号操作三、功能介绍: 符合基本计算器的优先级运算,支持加、减、乘、除、乘方、开方运算。 GUI图形...
Java计算器源代码
Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器Java计算器
我学习JAVA时编的计算器小程序,完全支持键盘输入! 仅供学习交流用!