想要编写一个简单点的四则运算计算器,发现如果不是图形界面的话,用输入的字符串来解析里面的数字和运算符号的方法,真的很难办到,很多的判断语句不知道怎么下手才好。最后出来了一个连半成品都不算的代码。
//10月14日设计简单计算器,原理,从得到的字符串里提取到相应的数字和符号然后进行计算,太复杂目前停止
public class Test{
public static void main(String[] args){
int[] num; //用来保存读取到的数字
System.out.println("请输入数据(0-9)和运算符号(举例3+5-6*7):");
String s = new Scanner(System.in).nextLine();
StrHandle str = new StrHandle(s);
s = str.spaceRace();
if(str.strFit(s)){
//提取str中的数字和运算符进行运算
}
}
}
class StrHandle{
private String s;
public StrHandle(String s){
this.s = s;
}
public String spaceRace(){
char c;
String str = "";
for(int i = 0; i < s.length(); i++){
c = s.charAt(i);
if(c != ' '){ str += c;}
}
System.out.println(str);
return str;
}
public boolean strFit(String str){
boolean fit = true;
//判断现在的str是否符合运算要求
return fit;
}
}
最后还是想编写个计算器,用比较原始的方法,一个一个输入好了,就这样,还是缺少必要的判断条件有一定的缺陷,不过好在以自己现在的手段还是完成了。从这个小小的计算器的编写就能够看到,图形界面很多的好处,将复杂的输入字符串判定方法简单化,图形界面里面的文本框,可以限定一定的范围,如果需要的数据输入了非法字符串,马上就给出错误提示,对输入运算符号的判断可以减少,减轻了设计的负担。
public class Test{
public static void main(String[] args){
//设计最简单的计算器,先得到数字,double型,再得到一个运算符得到结果
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字:");
double num1 = sc.nextDouble();
System.out.println("请输入运算符:");
String s = sc.next();
System.out.println("请输入一个数字:");
double num2 = sc.nextDouble();
CountNum count = new CountNum(num1, num2);
System.out.println("得到的结果是:" + count.countNum(s));
}
}
class CountNum{
private double result;
private double num1, num2;
public CountNum(double num1, double num2){
this.num1 = num1;
this.num2 = num2;
}
public double countNum(String s){
char c = s.charAt(0);
switch(c){
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
default:
System.out.println("你的输入不是一个运算符");
break;
}
return result;
}
}