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?
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.