要求:用Java代码实现一个简单的计算器(实现加减乘除功能),操作过程如下:用户在控制台中输入第一个数,然后系统自动提示用户选择操作(加、减、乘、除、计算)项,然后让用户输入第二个数字,然后系统自动提示用户选择操作项....以此类推。等一个计算完成后提示用户是退出还是继续使用。
package com.dsw.test;
import java.util.Scanner;
public class CalculateDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String cal = "Y";
String operator = null;
StringBuilder sb = null;
while("Y".equals(cal.toUpperCase())){
sb = new StringBuilder();
sb.append(sc.next());
while(true){
System.out.println("请输入'+'、'-'、'*'、'/'、'='进行计算");
operator = sc.next();
if("=".equals(operator)){
System.out.println("表达式:" + sb.toString());
System.out.println("计算结果:" + getResult(sb.toString()));
break;
}else{
sb.append(operator);
sb.append(sc.next());
}
}
System.out.println("是否继续进行计算(y/n) ?");
cal = sc.next();
}
}
private static int getResult(String s){
String [] str = s.split("[+-]");
char [] ch = s.toCharArray();
char [] operation = new char [ch.length];
for(int i = 0;i<str.length;i++){
str[i] = String.valueOf(compute(str[i]));
}
int a = 0;
for(int i = 0,j=1;i<ch.length;i++){
if(ch[i] == '+'){
if(j==1){
a = Integer.valueOf(str[0]) + Integer.valueOf(str[1]);
j++;
}else{
a = a + Integer.valueOf(str[j]);
j++;
}
}
if(ch[i] == '-'){
if(j==1){
a = Integer.valueOf(str[0]) - Integer.valueOf(str[1]);
j++;
}else{
a = a - Integer.valueOf(str[j]);
j++;
}
}
}
return a;
}
public static int compute(String s){
if(s.indexOf("*") > -1){
String [] str = s.split("[*]");
return Integer.valueOf(str[0]) * Integer.valueOf(str[1]);
}else if(s.indexOf("/") > -1){
String [] str = s.split("[/]");
return Integer.valueOf(str[0]) / Integer.valueOf(str[1]);
}else{
return Integer.valueOf(s);
}
}
}