This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes Input error in math equation Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Input error in math equation" Watch "Input error in math equation" New topic
Author

Input error in math equation

Greg Gruic
Greenhorn

Joined: Apr 30, 2011
Posts: 8
I am creating a program that will calculate a math equation similar to (5+5) + 6*3 + 18. It works when I put spaces between the integers and operators, however if there is no space it gives me a stack error. I know its because I am using s.nextInt(); for numbers and s.next() for the operators and if there is no space s.next() will pull everything till you get to a space. Any suggestions on how to fix this. Line 57 is my error because of an empty stack. The input is read between 17-24.

Thanks in advance!

fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11161
    
  16

Did you read the API on the Scanner class?
A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace.
So it needs the (white)space to know where your tokens are.

You may be able to pass it a regex as a pattern, that would have a whitespace or your operators (with an optional space), but I don't know if you can then get the operator...


There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
 
 
subject: Input error in math equation
 
Similar Threads
String arguments
A continuation of my previous post, if I may...
converting this to a prefix instead of a postfix calculator
Another method of parsing a command line string
Trouble evaluating postfix Expression