【hihocoder】#1374 : 计算器

题目链接:http://hihocoder.com/problemset/problem/1374

题目描述:
请实现一个能够计算加减法的计算器。

输入
每一行是一个计算表达式;当表达式为END时,表示输入结束。

输出
针对每组数据,输出计算的结果。

思路:
easy 要解决的是 如何将digit组合为一个number

算法:

import java.math.BigInteger;
import java.util.Scanner;

/* * http://hihocoder.com/problemset/problem/1374 */
public class Main {

    public static void main(String[] args) {
        Main m = new Main();
        m.handleInput();
    }

    public void handleInput() {
        Scanner sc = new Scanner(System.in);
        String s = sc.next().trim();
        while (!s.equals("END")) {
            if (s.length() != 0)
                System.out.println(calculate(s).toString());
            s = sc.next().trim();
        }
    }

public BigInteger calculate(String s) {
        BigInteger res = BigInteger.ZERO;
        char op = '+';
        String num = "";// 准备被组合的数字
        for (char c : s.toCharArray()) {
            if (c >= '0' && c <= '9') {
                num += c;
            } else {
                if (op == '+') {
                    res = res.add(new BigInteger(num));
                } else {
                    res = res.subtract(new BigInteger(num));
                }
                op = c;
                num = "";
            }
        }
        if (op == '+') {
            res = res.add(new BigInteger(num));
        } else {
            res = res.subtract(new BigInteger(num));
        }
        return res;
    }


}

你可能感兴趣的:(【hihocoder】#1374 : 计算器)