java实现四则运算

package package2;

import java.util.Scanner;

public class fourKindsCalculate{
    public static void main(String[] args) {
        System.out.println("please enter a line to Calculator:");
        String s = new Scanner(System.in).nextLine();
        float f;
        System.out.println("the calculator result:");
        try {
            f = opt(s);
            System.out.println(f);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
public static float opt(String s) throws Exception{
        if(s == null || "".equals(s.trim())) {
            return 0f;
        }
        int indexOne=s.indexOf("+");
        int indexTwo=s.indexOf("-");
        int indexThree=s.indexOf("*");
        int indexFour=s.indexOf("/");
        int indexFive=s.indexOf("(");
        if(indexOne==-1&&indexTwo==-1&&indexThree==-1&&indexFour==-1){
            if(s.trim()==null||"".equals(s.trim())){
                throw new Exception("operate error");
            }
            return Float.parseFloat(s.trim());
        }
         
        if(indexFive!=-1){
        int indexSix=s.indexOf(")");
            if(indexSix==-1){
                throw new Exception("括号不匹配");
            }else{
                float f=opt(s.substring(indexFive+1,indexSix).trim());
                s=s.replace(s.substring(indexFive,indexSix+1), String.valueOf(f));
                return opt(s);
            }
        }
         
        if(indexOne!=-1){
            return opt(s.substring(0,indexOne))+opt(s.substring(indexOne+1,s.length()));
        }
        if(indexTwo!=-1){
            return opt(s.substring(0,indexTwo))-opt(s.substring(indexTwo+1,s.length()));
        }
        if(indexThree!=-1){
            return opt(s.substring(0,indexThree))*opt(s.substring(indexThree+1,s.length()));
        }
        if(indexFour!=-1){
            return opt(s.substring(0,indexFour))/opt(s.substring(indexFour+1,s.length()));
        }
        return Integer.parseInt(s.trim());
    }
}

结果示例(result):

please enter a line to Calculator:
(1+2*3)/2
the calculator result:
3.5

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值