日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

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

發布時間:2024/8/1 java 30 豆豆

第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);} } 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Java黑皮书课后题第10章:*10.26(计算器)修改程序清单7-9,接收一个字符串表达式,其中操作符和操作数由0到多个空格隔开的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。