Help with string token
Hi, I need to make a program that has the user enter an expression and solve the expression from left to right ignoring any order of operations.
For example the expression: 2+5*2 = 14. I have everything done except for the solving of the expression. I dont know how to break up the inputed string. I know i need to use the string tokenizer but im not sure how.
Can someone help point me in a direction.
Here is what i have now:
public class Calc
//prompts the user for input and calls necessary methods
public static void main(String args)
String cont = "";
System.out.println("Please enter a numeric expression.");
System.out.print("Do you want to enter another expression? (y/n): ");
cont = Calc.getInput();
//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);
You don't need stringtokenizer here. Just read your line as a string. Then create a loop which will go over all characters of the string. Append each character to a temporary stringbuffer (stringbufferLeftExpression) until you find one of the operators. Then save operator type and in a similar way, find the right expression by appending characters to a temporary stringbuffer (stringbufferRightExpression). When you find the next operator, apply previous operation on stringbufferLeftExpression and stringbufferRightExpression and save the result to stringbufferLeftExpression. This loop goes like this until whole operation is finished.
I try to explaing it without writing the code. Try it yourself if you understand it. If something is unclear let me know.