Nightocoder201 30 Newbie Poster

Guys,

I am sorry that I am asking for so much help. I have learned on what you wrote I am not here just copying and pasting, I am here to learn. I know you guys probably hate me alot since you think that I am here just for answers while I am not I am like alot of other people learning and helping.

Again I am sorry and I wont be beg for answers, I just want to learn.

rproffitt commented: I sense no hate here. +15
Nightocoder201 30 Newbie Poster

Hello everyone,

I am having trouble with my program its solving expressions and when I compile it I get a "Illegal start of expresson" line in my output. I am using Jgrasp as my softwear. May I ask to reveiw my code and see on what I did wrong? I am asking for learning purposes.

Thank You.

import java.util.ArrayList;
import java.util.Scanner;
import static java.lang.Integer.*;
import static java.lang.System.*;

public class ExpressionSolver
{
    int answer;
    String expString;
    ArrayList<String> exp;
    public ExpressionSolver(String s)
    {
        setExpression(s);
    }

    public void setExpression(String s)
    {
        expString = s;
        exp = new ArrayList<String>();

        for(String temp: s.split(" "))
        {
         exp.add(temp);
        }
    }

    public void solveExpression()
    { 
       int index1, index2, num1, num2;        

       while(exp.contains(" ") || exp.contains("/"))
       {
       index1 = exp.indexOf("*");
       index2 = exp.indexOf("/");

       if(index1 <= 0)
       {
        index1 = 100;
       }
        if (index2 <= 0)
       {
        index2 = 100;
       }

        if(index1 < index2)
      {   
        num1 = Integer.parseInt(exp.get(index1-1));
        num2 = Integer.parseInt(exp.get(index1+1));
        answer = num1 * num2;

        exp.remove(index1 - 1);
        exp.remove(index1 - 1);
        exp.set(index1 - 1, Integer.toString(answer));
       }
        else if(index2 < index1)
       {
        num1 = Integer.parseInt(exp.get(index2 - 1));
        num2 = Integer.parseInt(exp.get(index2 + 1));
        answer = num1 / num2;

        exp.remove(index2 -1);
        exp.remove(index2 - 1);
        exp.set(index1 -1 ,Integer.toString(answer));

        while(exp.contains("+") || exp.contains("-"))
        {
           index1 = exp.indexOf("+");
           index2 = exp.indexOf("-");

           if(index1 <= 0)
           {
             index1 = 100;
           }
           if(index2 <= 0)
           {
            index2 = 100;
           }      
            if(index2 < index1)
        {   
         num1 = Integer.parseInt(exp.get(index1-1));
         num2 = Integer.parseInt(exp.get(index1+1));
         answer = num1 + num2;

         exp.remove(index1 - 1);
         exp.remove(index1 - 1);
         exp.set(index1 - 1, Integer.toString(answer));
        }
         else if(index2 < …
Reverend Jim commented: Asked nicely, picked a good title, showed proof of effort. +15