import java.util.*;
public class StringCalculator extends Calculator
{
    public static void main (String [] args)
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("What is the problem you are trying to solve? ");
        String expression = sc.nextLine();

        StringAnalyzer s1 = new StringAnalyzer(expression);
        ArrayList<String> values = new ArrayList<String>();

        for (int i =0; i<expression.length(); i++)
        {
            values.add(expression.substring(i, i+1));
        }

        while(s1.containsMultiply() || s1.containsDivide())
        {
            for (int i = 0; i < values.size(); i++)
            {
                if (values.get(i).equals("*"))
                {
                    values.set(i, "" + (Integer.parseInt(values.get(i+1)) * Integer.parseInt(values.get(i-1))));
                    values.remove(i-1);
                    values.remove(i);
                    i = 0;
                    expression = "";
                    for (String c: values)
                    {
                        expression+=c;
                    }
                    s1 = new StringAnalyzer(expression);

                }
                else if (values.get(i).equals("/"))
                {
                    values.set(i, "" + (Integer.parseInt(values.get(i+1)) / Integer.parseInt(values.get(i-1))));
                    values.remove(i-1);
                    values.remove(i);
                    i = 0;
                    System.out.println(values.get(0));
                    expression = "";
                    for (String c: values)
                    {
                        expression+=c;
                    }
                    s1 = new StringAnalyzer(expression);

                }
            }
            

            /*else if (values.get(i) == "/")
            {
            values.set(i, "" + (Integer.parseInt(values.get(i+1)) / Integer.parseInt(values.get(i-1))));
            values.remove(i-1);
            values.remove(i);
            i = i-2;

            }
            }
             */
            System.out.println(values.get(0));
            
        }
        //System.out.println(values.get(0));

        while (s1.containsAdd() == true || s1.containsSubtract() == true)
        {
            for (int i = 0; i < values.size(); i++)
            {
                if (values.get(i) == "+")
                {
                    values.set(i, "" + (Integer.parseInt(values.get(i+1)) + Integer.parseInt(values.get(i-1))));
                    values.remove(i-1);
                    values.remove(i);
                    i = i-2;
                }
                else if (values.get(i) == "-")
                {
                    values.set(i, "" + (Integer.parseInt(values.get(i+1)) - Integer.parseInt(values.get(i-1))));
                    values.remove(i-1);
                    values.remove(i);
                    i = i-2;

                }
            }

        }
        //String value = "";
        /*for (int i = 0; i < values.size(); i++)
        {
        value+=values.get(i);
        }
        /*ArrayList<String> values = new ArrayList<String>();
        for (int i =0; i<expression.length(); i++)
        {
        values.add(expression.substring(i, i+1));
        }
        for (int i =0; i < values.size(); i+=)
        {
        if (values.get(i) == "*")
        {
        values.set(i, "" + values.get(i-1) * values.get(i+1);
        i = i-3;
        }
        else if (values.get(i) == ("/")
        {

        }

        }
         */

        //System.out.println(value);
    }

}

@@ -1317,33 +1317,33 @@
 Int(values.get(i
-+
+-
 1)) / Integer.pa
@@ -1353,33 +1353,33 @@
 Int(values.get(i
--
++
 1))));%0A         
@@ -1478,62 +1478,8 @@
  0;%0A
-                    System.out.println(values.get(0));
 %0A   
@@ -1732,326 +1732,36 @@
   %7D%0A
-            %0A%0A            /*else if (values.get(i) == %22/%22)%0A            %7B%0A            values.set(i, %22%22 + (Integer.parseInt(values.get(i+1)) / Integer.parseInt(values.get(i-1))));%0A            values.remove(i-1);%0A            values.remove(i);%0A            i = i-2;%0A%0A            %7D%0A            %7D%0A             */%0A            
+%0A            %0A            //
 Syst
@@ -1791,28 +1791,16 @@
 et(0));%0A
-            
 %0A       
@@ -2035,16 +2035,21 @@
 t(i)
- == 
+.equals(
 %22+%22)
+)
 %0A   
@@ -2278,20 +2278,239 @@
     i = 
-i-2;
+0;%0A                    expression = %22%22;%0A                    for (String c: values)%0A                    %7B%0A                        expression+=c;%0A                    %7D%0A                    s1 = new StringAnalyzer(expression);%0A
 %0A       
@@ -2562,16 +2562,21 @@
 t(i)
- == 
+.equals(
 %22-%22)
+)
 %0A   
@@ -2655,25 +2655,25 @@
 values.get(i
-+
+-
 1)) - Intege
@@ -2687,33 +2687,33 @@
 Int(values.get(i
--
++
 1))));%0A         
@@ -2809,13 +2809,10 @@
 i = 
-i-2;%0A
+0;
 %0A   
@@ -2824,32 +2824,36 @@
         
-%7D%0A
     
-        %7D%0A
+expression = %22%22;
 %0A       
@@ -2853,26 +2853,24 @@
         
-%7D%0A
         
 //String
@@ -2865,77 +2865,33 @@
     
-//String value = %22%22;%0A        /*for (int i = 0; i %3C values.size(); i++
+    for (String c: values
 )%0A  
@@ -2892,34 +2892,32 @@
 es)%0A        
-%7B%0A
         
 value+=value
@@ -2908,152 +2908,52 @@
     
-value+=values.get(i);%0A        %7D%0A        /*ArrayList%3CString%3E values = new ArrayList%3CString%3E();%0A        for (int i =0; i%3Cexpression.length(); i++)
+    %7B%0A                        expression+=c;
 %0A   
@@ -2961,68 +2961,20 @@
     
-%7B%0A
       
-  values.add(expression.substring(i, i+1));%0A
       
-  
 %7D%0A  
@@ -2983,171 +2983,66 @@
     
-for (int i =0; i %3C values.size(); i+=)%0A        %7B%0A        if (values.get(i) == %22*%22)%0A        %7B%0A        values.set(i, %22%22 + values.get(i-1) * values.get(i+1
+            s1 = new StringAnalyzer(expression
 );%0A
+%0A
         
 i = 
@@ -3041,25 +3041,16 @@
     
-i = i-3;%0A
+ 
        
- 
 %7D%0A  
@@ -3059,47 +3059,21 @@
     
-else if (values.get(i) == (%22/%22)
+    %7D
 %0A       
  %7B%0A%0A
@@ -3072,22 +3072,13 @@
     
- %7B%0A%0A
      
-   %7D%0A
 %0A   
@@ -3096,23 +3096,8 @@
     
- */%0A%0A        //
 Syst
@@ -3116,18 +3116,42 @@
 ln(value
-);
+s.get(0));%0A        %0A      
 %0A    %7D%0A%0A

Add files via upload