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

 

 

你可能感兴趣的:(java实现四则运算)