一、目的
学会用Java编写简单的四则运算。
二、步骤
思路分析:拿到表达式后,按照人的计算方法先乘除后加减,遍历运算符,得出结果。
三、核心代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
package sizeyunsuan; import java.util.Scanner; public class Szys { public static void main(String[] args) { Scanner str1 = new Scanner(System.in); System.out.println( "请输入:" ); String str = str1.nextLine(); String strs = str.replace( "+" , "-" ); String[] s = strs.split( "-" ); double temp= 0 ; double sum= 0 ; //遍历截取了的字符数组 for (String a:s){ //查找有*或/的数组 if (a.contains( "*" )||a.contains( "/" )){ //遍历带符号的数组 for ( int i= 0 ;i<a.length();){ //设置一个变量,来控制下标, int count = 1 ; //需要截取的字符串长度 a: for ( int j=i+ 1 ;j<a.length();j++){ //取出下一个字符 char c = a.charAt(j); //System.out.println(c+"==="); //如果字符是*或/ if (c== '*' ||c== '/' ){ //终止a循环 break a; } else { //如果不是就长度加一; count++; } } //截取字符串 String strNun =a.substring(i,i+count); // System.out.println(strNun+"========="); //转变为数字 double d = Double.parseDouble(strNun); //第一个数字 if (i== 0 ){ temp = d; } else { //取出当前的数字前面的符号 char t =a.charAt(i- 1 ); //如果运算符是* if (t== '*' ){ //前一个数就乘它 temp*=d; } else if (t== '/' ){ temp/=d; } } //把坐标向后移一个长度 i+=count+ 1 ; } str = str.replace(a, temp+ "" ); } } //计算加减,与上面的思路一样 for ( int i = 0 ;i<str.length();){ int count = 1 ; a: for ( int j=i+ 1 ;j<str.length();j++){ char c = str.charAt(j); if (c== '+' ||c== '-' ){ break a; } else { count++; } } String strNum = str.substring(i,i+count); double d =Double.parseDouble(strNum); if (i== 0 ){ sum=d; } else { char s2 =str.charAt(i- 1 ); if (s2== '+' ){ sum+=d; } else if (s2== '-' ){ sum-=d; } } i+=count+ 1 ; } System.out.println(sum); } } |
四、运行结果
五、psp阶段
psp | 任务内容 | 计划完成需要用的时间 | 实际完成所用的时间 |
planning | 计划 | 2 | 3 |
明确需求 | 估计这个任务大概需要多久,以及所进行的步骤 | 2 | 3 |
Development | 开发 | 40 | 60 |
Analysis | 需求分析 | 5 | 10 |
Design | 具体设计 | 2 | 5 |
Coding | 具体编码 | 40 | 68 |
Code Review | 代码复审 | 20 | 30 |
Test | 测试,包括修改 | 2 | 15 |
Reporting | 报告 | 1 | 2 |
////// | 计算工作量 | 2 | 3 |
///// | 事后总结,并提出规程还进计划 | 5 | 7 |
六、个人总结
在写代码的时候,需要先有清晰的思路,现在脑子里大概构思好,然后再进行代码的编写,而且在写代码的过程中,需要不断的回忆以前的旧知识,也可以复习一下以前的知识,真是佩服那些程序员们,真厉害,因为是团队的问题,写的代码不仅自己能看懂,也得让别人也看懂,太厉害了,但是由于的我能力有限,没能写出出现括号的情况,如果表达式里面带有括号的话,运行会出错。
虽然每次写作业耗费了大量的时间和精力,但是让我学会了很多东西,获得了宝贵的经验。