水下功夫做透,水上才能顺风顺水。

返回字符串表示的数学表达式的值

   输入一个字符串,返回字符串表示的数学表达式的值。
    字符串里面只会包括正整数,+,- 两种运算
    比如 "20+10-5",返回25
    备注:没有括号,不考虑溢出

 

 int cal(String str){
        if(str==null || str.length()==0){
            return 0;
        }

        char[] charStr = str.toCharArray();
        int sum = 0;
        char flag = '+';
        int cur = 0;
        for(int i=0;i<charStr.length;i++){

            cur = 0;
            while(i<charStr.length&&charStr[i]>='0' && charStr[i]<='9'){
                cur *= 10;
                cur += charStr[i] - '0';
                i++;
            }
            if(flag =='+'){
                sum += cur;
            }else{
                sum -= cur;
            }
            if(i==charStr.length){
                break;
            }
            flag = charStr[i];

        }
        return sum;

    }

 

posted @ 2022-10-25 17:55  北方寒士  阅读(39)  评论(0编辑  收藏  举报