没有负数的计算器

简单表达式计算

http://www.nowcoder.com/questionTerminal/6221faa383fc49f1b10dffcb62c866bf

用split先按+-号断开,再各按*/号断开

import java.util.*;
public class Main{
    public static int f(String str){
        String[] v = str.split("[*/]");//先算乘除法
        int r = Integer.valueOf(v[0]);
        int k = v[0].length();//运算符的下标
        for(int i = 1; i < v.length; ++i){
            if(str.charAt(k) == '*') r *= Integer.valueOf(v[i]);
            if(str.charAt(k) == '/') r /= Integer.valueOf(v[i]);
            k += v[i].length() + 1;
        }
        return r;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(true){
            String str = sc.nextLine();
            if(str.equals("END")) break;
            String[] v = str.split("[+-]");//再算加减法
            int r = f(v[0]);
            int k = v[0].length();//运算符的下标
            for(int i = 1; i < v.length; ++i){
                if(str.charAt(k) == '+') r += f(v[i]);
                if(str.charAt(k) == '-') r -= f(v[i]);
                k += v[i].length() + 1;
            }
            System.out.println(r);
        }
    }
}
全部评论

相关推荐

程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务