我的Java学习-计算器真的很难编程

想要编写一个简单点的四则运算计算器,发现如果不是图形界面的话,用输入的字符串来解析里面的数字和运算符号的方法,真的很难办到,很多的判断语句不知道怎么下手才好。最后出来了一个连半成品都不算的代码。

//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;
    }    
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值