编写一个一位数算术表达式计算器,要求用户从命令提示符下输入表达式,如5*4,程序返回结果5*4 = 20。循环提示,直至用户输入“$”符号终止程序。【提示:程序解析表达式,得出操作数和操作符,进行运算后返回结果。】要求程序交互提示如下:
程序提示:请输入一位数表达式…
用户输入:3+2
程序返回:3+2 = 5
程序提示:请输入一位数表达式…
用户输入:$
程序退出:退出系统 求高手帮解!!本人不知道如何将用户输入的数字和运算符号分别获取并进行运算~
程序提示:请输入一位数表达式…
用户输入:3+2
程序返回:3+2 = 5
程序提示:请输入一位数表达式…
用户输入:$
程序退出:退出系统 求高手帮解!!本人不知道如何将用户输入的数字和运算符号分别获取并进行运算~
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
boolean flag = true;
String str = null;
int num1, num2;
long sum;
while(flag) {
System.out.println("请输入一位数表达式...");
str = input.nextLine();
//如果输入是$,则退出循环
if(str.trim().equals("$")) {
flag = false;
return;
}
//分割出两个操作数,可以是多位,但是必须符合1*3这种形式
String[] temp = str.split("\\D");
//得到操作符
String operator = str.replaceAll("\\d", "");
//如果操作数少于两个,就提示错误,并返回
if(temp.length != 2) {
System.out.println("请输入符合要求的表达式!");
return;
}
//执行运算,得打结果
num1 = Integer.parseInt(temp[0]);
num2 = Integer.parseInt(temp[1]);
if(operator.equals("+")) {
sum = num1 + num2;
} else if(operator.equals("-")) {
sum = num1 - num2;
} else if(operator.equals("*")) {
sum = num1 * num2;
} else if(operator.equals("/")) {
if(num2 == 0) {
System.out.println("除数不能为0");
return;
}
sum = num1 / num2;
} else if(operator.equals("%")) {
if(num2 == 0) {
System.out.println("模数不能为0");
return;
}
sum = num1 % num2;
} else {
System.out.println("你输入的操作符有误,请重新输入表达式!");
return;
}
System.out.println(str + "=" + sum);
}
}
}
这个程序估计能够满足楼主的需求,好运!
小弟不是很明白这是什么意思? 请指教?