svetlozar_kirkov

Simple Expression

Feb 5th, 2015
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.21 KB | None | 0 0
  1. import java.math.BigDecimal;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4. import java.util.Collections;
  5. import java.util.List;
  6. import java.util.Scanner;
  7.  
  8. public class SimpleExpression {
  9.  
  10.     public static void main(String[] args) {
  11.         Scanner input = new Scanner(System.in);
  12.         String inputLine = input.nextLine().trim().replaceAll("\\s+","");
  13.         String[] splitNums = inputLine.split("[-+]");
  14.         String[] splitOperators = inputLine.split("[\\d\\s^.]");
  15.         splitOperators = clean(splitOperators);
  16.         splitNums = clean(splitNums);
  17.         BigDecimal sum = new BigDecimal(splitNums[0]);
  18.        
  19.         for (int i = 1; i < splitNums.length; i++){
  20.             BigDecimal temp = new BigDecimal(splitNums[i]);
  21.             if (splitOperators[i-1].equals("+")){
  22.                 sum = sum.add(temp);
  23.             }
  24.             else{
  25.                 sum = sum.subtract(temp);
  26.             }
  27.         }
  28.         System.out.printf("%.7f\n",sum);
  29.     }
  30.    
  31.     public static String[] clean(final String[] v) {
  32.     List<String> list = new ArrayList<String>(Arrays.asList(v));
  33.     list.removeAll(Collections.singleton(""));
  34.     return list.toArray(new String[list.size()]);
  35.     }
  36.    
  37. }
Advertisement
Add Comment
Please, Sign In to add comment