Results 1 to 2 of 2
  1. #1
    barney is offline Member
    Join Date
    Jul 2007
    Posts
    40
    Rep Power
    0

    Default Help with spacing in java

    Hi, I have a completed java program that takes an expression and solves it. The program works fine except i need to print the final answer like this:2+2=4 and it doesn't. It puts the answer on a different line.
    Does anyone know what i did wrong?
    Java Code:
    import java.util.*;
    import java.io.*;
    
    public class Calc1
    {
    
      //prompts the user for input and calls necessary methods
      public static void main(String args[])
      {
        String cont = "";
    
        do
        {
          System.out.println("Please enter a numeric expression.");
          StringTokenizer exp = new StringTokenizer(Calc1.getInput(), "+-*/%", true);
    
           //int result = Calc1.performOperation(exp);
           System.out.println("" + Calc1.getInput() + "=" + Calc1.performOperation(exp));
          System.out.print("Do you want to enter another expression? (y/n): ");
          cont = Calc1.getInput();
        }while(cont.equalsIgnoreCase("y"));
    
         System.out.println("Goodbye");
      }
    
       //gets a single input from the user, and returns it as a String
      static String getInput()
      {
        java.io.InputStreamReader input = new java.io.InputStreamReader(System.in);
        java.io.BufferedReader console = new java.io.BufferedReader(input);
    
        try
        {
          return console.readLine();
        }
        catch(java.io.IOException e)
        {
          System.err.println("Bad NEWS!!!");
          return "";
        }
      }
    
      //performs requested operation
      static int performOperation (StringTokenizer exp)
      {
        int num1 = 0;
        int result = 0;
        String check = "";
        String sve = "+";
    
        do
        {
          check = exp.nextToken();
          if(!check.equals("+") && !check.equals("-") && !check.equals("*") && !check.equals("/") && !check.equals("%"))
          {
            num1 = Integer.parseInt(check);
    
            if(sve.equals("+"))
            {
              result = result + num1;
              num1 = 0;
            }
    
            else if(sve.equals("-"))
            {
              result = result - num1;
            }
    
            else if(sve.equals("*"))
            {
              result = result * num1;
            }
    
            else if(sve.equals("/"))
            {
              result = result / num1;
            }
    
           else if(sve.equals("%"))
           {
             result = result % num1;
           }
          }
    
          else
          {
            sve = check;
          }
        }while(exp.hasMoreTokens());
    
        return result;
       }
      }
    Thanks.

  2. #2
    brianhks is offline Senior Member
    Join Date
    Jul 2007
    Posts
    135
    Rep Power
    0

    Default

    The readLine inside of Calc1.getInput() gets the line feed as part of the input. Try changing it to this Calc1.getInput().trim()

    That will trim off the whitespace.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •