第10章:*10.26(计算器)

  • 题目
  • 程序清单7-9
  • 本题代码:大幅优化升级

题目

程序清单7-9

对代码进行了修改:原代码将".“认做乘号,修改后将”*"作为乘号

public class qingdan {public static void main(String[] args) {// Check number of String passedif (args.length != 3){System.out.println("Usage: java Calculator operand1 operator operand2: ");System.exit(1);}// The result of the operationint result = 0;// Determine the operatorswitch (args[1].charAt(0)){case '+': result = Integer.parseInt(args[0]) + Integer.parseInt(args[2]);break;case '-': result = Integer.parseInt(args[0]) - Integer.parseInt(args[2]);break;case '*': result = Integer.parseInt(args[0]) * Integer.parseInt(args[2]);break;case '/': result = Integer.parseInt(args[0]) / Integer.parseInt(args[2]);}// Display resultSystem.out.println(args[0] + " " + args[1] + " " + args[2] + "=" + result);}
}

本题代码:大幅优化升级

(需要数据结构的玩意儿)
可以执行多步运算
可以支持多位运算
可以支持带括号的运算
可以支持带小数的数字
但依然只支持加减乘除
这里我们借助了jie位大佬的代码

https://www.cnblogs.com/woider/p/5331391.html

这里就不粘贴大佬代码了
有需要可以直接复制粘贴
但注意要将大佬代码里所有的“Calculate”替换为“Test26_Calculate”
或者将下面我给出的代码里所有“Test26_Calculate”替换为“Caculate”

public class Test26 {public static void main(String[] args) {double result = 0;int input_length = args.length;String input_string = "1";for (int i = 0 ; i < input_length ; i++){input_string += args[i];}if (input_string.length() >= 2){input_string = input_string.substring(2, input_string.length());// 此时input_string只有数字、符号和括号}result = Test26_Calculator.conversion(input_string);System.out.println(result);}
}

Java黑皮书课后题第10章:*10.26(计算器)修改程序清单7-9,接收一个字符串表达式,其中操作符和操作数由0到多个空格隔开相关推荐

  1. Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt(100)方法显示0到100之间的前50个随机整数

    Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt方法显示0到100之间的前50个随机整数 题目 赘述 代码 题目 ...

  2. Java黑皮书课后题第7章:*7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合

    7.28(数学:组合) 题目 题目描述 破题 代码 运行示例 题目 题目描述 *7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这10个数中选出两个数的所有组合 破题 声明一个长 ...

  3. Java黑皮书课后题第3章:3.12(回文数字)编写一个程序,提示用户输入一个三位的整数,然后确定它是否是回文数

    3.12(回文数字)编写一个程序,提示用户输入一个三位的整数,然后确定它是否是回文数 题目 题目描述 示例 破题 代码 题目 题目描述 3.12(回文数字)编写一个程序,提示用户输入一个三位的整数,然 ...

  4. Java黑皮书课后题第4章:*4.25(生成车牌号码)假设一个车牌号码由三个大写字母和后面的四个数字组成。编写一个程序,生成一个车牌号码

    *4.25(生成车牌号码)假设一个车牌号码由三个大写字母和后面的四个数字组成.编写一个程序,生成一个车牌号码 题目 题目概述 破题 代码 题目 题目概述 *4.25(生成车牌号码)假设一个车牌号码由三 ...

  5. Java黑皮书课后题第8章:*8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1

    *8.22(偶数个1)编写一个程序,产生一个6*6的填满0和1的二维矩阵,显示该矩阵,检测是否每行以及每列中有偶数个1 题目 题目描述 破题 代码 题目 题目描述 8.22(偶数个1)编写一个程序,产 ...

  6. Java黑皮书课后题第7章:**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?

    7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生.所有的储物柜在上学的第一天都是关着的.-在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的? 题目 题目描述 破题 代码 运行 ...

  7. Java黑皮书课后题第8章:*8.31(几何:交点)编写一个方法,返回两条直线的交点。四个点存放在4*2的二维数组points中。编写一个程序,提示用户输入4个点,并显示交点

    *8.31(几何:交点)编写一个方法,返回两条直线的交点.四个点存放在4*2的二维数组points中.编写一个程序,提示用户输入4个点,并显示交点 题目 题目描述 破题 代码 本题运行实例 题目 题目 ...

  8. Java黑皮书课后题第7章:**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符,使用next()读取

    **7.17(对学生排序)编写一个程序,提示用户输入学生个数.学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名.假定姓名是不包含空格的字符,使用next方法读取 题目 题目描述 破题 代码 ...

  9. Java黑皮书课后题第2章:*2.17(科学:风寒温度)外面有多冷?...twc=35.74+0.6215ta-35.75v0.16+0.4275tav0.16,输入度数、风速显示风寒温度

    *2.17(科学:风寒温度)外面有多冷?...twc=35.74+0.6215ta-35.75v0.16+0.4275tav0.16,输入度数.风速显示风寒温度 题目 题目描述 破题 运行示例 代码 ...

最新文章

  1. centos 7 文档服务器,centos 7 web服务器
  2. [oracle]常用SQL汇总
  3. memcached完全剖析系列教程《转》 memcached完全剖析系列教程–2.理解memcached的内存存储...
  4. 8、SpringBoot-CRUD默认访问的首页以及thyleaf的静态文件引入/WebMvcConfigurer / WebMvcConfigurationSupport...
  5. React中的路由react-router
  6. 02-Linux Kernel(armv8-aarch64)的原子操作的底层实现
  7. 使用JDBC-ODBC桥接方式访问Access数据库(实例)
  8. 手绘导图版:深入解析机器学习在风控场景中的8大应用
  9. Corba传值包含中文解决
  10. 1067 mysql,mysql免安装版1067错误终极解决办法图文教程
  11. linux里面的命令
  12. Linux chkconfig命令
  13. 软件项目管理案例教程(第三版)其它课后题答案持续更新,欢迎收藏+关注
  14. python自动生成和文件同名的文件夹,并将文件移动到同名文件夹中
  15. 如何在南方CASS中内插高程点
  16. n维椭球体积公式_物质的量浓度公式如何应用
  17. Prolog编程学习(一)
  18. 适者生存还是强者生存
  19. ps 自动生成html代码,ps怎么生成html网页文件 PS生成html网页文件的具体教程
  20. youtube爬虫搭建

热门文章

  1. 试题 历届试题 幸运数(二分)
  2. 1273: 夫妻 -stack的运用
  3. Flink Forward Asia 2021 正式启动!议题火热征集中!
  4. 阿里云开发者学院电子书《Dubbo分布式服务治理实战》重磅来袭!
  5. 阿里云MVP第14期全球发布:云时代2.0,遇见科技追梦者!
  6. 如何做到全年配送 0 故障?盒马揭秘 12个关键技术
  7. 2050,一个属于年青人的大会
  8. 免费下载!《九年双11:互联网技术超级工程》,300页干货精华
  9. 小游戏掉帧卡顿启动慢运行内存不足……这些问题有解吗?
  10. EntityFramework——委托与Lambda表达式