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); } }