title: Convert arithmetic string into double in Java
body: <p>I have a program where the user inputs 6 doubles, and the program outputs every combination of operators that can go in-between the doubles as 1024 separate strings. Here are the first two results if the user inputed 14,17,200,1,5, and 118:</p>
  
  <pre><code>"14.0+17.0+200.0+1.0+5.0+118.0"
  
  "14.0+17.0+200.0+1.0+5.0-118.0"
  </code></pre>
  
  <p>What I want to do is perform the arithmetic according to the order of operations.  Each double is stored as a variable a through f and each operator in-between these variables is stored as a char a_b through e_f.  So:</p>
  
  <pre><code>    double a, b, c, d, e, f;
      char a_b, b_c, c_d, d_e, e_f;
  </code></pre>
  
  <p>My first thought was to write the code like this:</p>
  
  <pre><code>    public double operateGroup() {
      value = 0;
  
      switch (a_b) {
      case '+':
          value += a + b;
          break;
      case '-':
          value += a - b;
          break;
      case '*':
          value += a * b;
          break;
      case '/':
          value += a / b;
          break;
      default:
          break;
      }
  
      switch (b_c) {
      case '+':
          value += c;
          break;
      case '-':
          value += -c;
          break;
      case '*':
          value *= c;
          break;
      case '/':
          value /= c;
          break;
      default:
          break;
      }
  
      switch (c_d) {
      case '+':
          value += d;
          break;
      case '-':
          value += -d;
          break;
      case '*':
          value *= d;
          break;
      case '/':
          value /= d;
          break;
      default:
          break;
      }
  
      switch (d_e) {
      case '+':
          value += e;
          break;
      case '-':
          value += -e;
          break;
      case '*':
          value *= e;
          break;
      case '/':
          value /= e;
          break;
      default:
          break;
      }
  
      switch (e_f) {
      case '+':
          value += f;
          break;
      case '-':
          value += -f;
          break;
      case '*':
          value *= f;
          break;
      case '/':
          value /= f;
          break;
      default:
          break;
      }
  
      return value;
  }
  </code></pre>
  
  <p>But this doesn't work because it is the same as doing (a O b) O c) O d) O e) where O is any arbitrary operator.  Any tips?</p>