A1046. 加法器

问题描述

  输入一个字符串表达式,输出它的结果,表达式中只包含加法和减法,且运算均在整数范围之内。
输入格式
  一行,字符串表达式。表达式长度不会超过100。表达式最少有一项,且以等号=结束
输出格式
  一行,输出结果。
样例输入
2+2345+913-3=

样例输出

3257
package www.tsinsen.com;

import java.util.ArrayList;
import java.util.Scanner;

public class A1046 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        String str=scan.next();
        //考虑第一个符号为'-'的情况
        if(str.charAt(0)=='-') {
            str="0"+str;
        }
        int k=0;//记录上次数字的位置
        ArrayList<Character> fuHao=new ArrayList<Character>();
        ArrayList<Integer> shuZi=new ArrayList<Integer>();
        for(int i=0;i<str.length();i++) {
            if(str.charAt(i)=='+'||str.charAt(i)=='-') {
                shuZi.add(Integer.parseInt(str.substring(k, i)));
                fuHao.add(str.charAt(i));
                k=i+1;
            }
        }
        shuZi.add(Integer.parseInt(str.substring(k,str.length()-1)));
        int sum=shuZi.get(0);
        for(int i=0;i<fuHao.size();i++) {
            if(fuHao.get(i)=='+') {
                sum+=shuZi.get(i+1);
            }
            else if(fuHao.get(i)=='-') {
                sum-=shuZi.get(i+1);
            }
        }
        System.out.println(sum);
    }

}

 

 
posted @ 2018-02-09 19:50  henu小白  阅读(227)  评论(0编辑  收藏  举报