DEV Community

Andrew Jackson
Andrew Jackson

Posted on

Train Simulation Problems

Hey everyone,

I am having trouble with this Train Simulation that I am working on for school. I don't know what I have done wrong. I am not getting any errors but the output is just wrong. I am having problems with how many stations are being visited and also the station names. The station name that is being printed is [Ljava.lang.String;@27716f4 and I don't know why.

You can find the main class MainClass and support class SubwayTrain
--> here.

If anyone can help I would greatly appreciate it.

Test data I am using

Number of Stations: 3
Home Station Number: 33
Maximum Capacity: 10
Enter fullscreen mode Exit fullscreen mode

Top comments (4)

Collapse
 
vilfrim profile image
vilfrim • Edited

Station name printing worked for me but you should change borrowedInput.next().toUpperCase().charAt(0) to borrowedInput.nextInt() when you are reading integer value from user. I would create a small helper method to read the valid integer input so I wouldn't have to implement validity check every time I read integer.

Collapse
 
sonandrew profile image
Andrew Jackson

Yes I fixed that problem and are you finding "borrowedInput.next()" in a validation method in MainClass? If so this is not validating an integer. It is to validate the character input from the user when they are choosing a menu option.

Collapse
 
vilfrim profile image
vilfrim

You are using borrowedInput.next().toUpperCase().charAt(0) method to read user input even when you are asking an integer value like in validateMaximumCapacity and validateNumberOfStations methods. In these cases you should use borrowedInput.nextInt() instead. Using borrowedInput.next().toUpperCase().charAt(0) method when you are asking a single character, like in main menu, is fine.

Thread Thread
 
sonandrew profile image
Andrew Jackson

Life saver!!! I didn’t realize I was doing that. Omg thank you. I thought I already fixed that a while ago. Well I guess that’s what you get when you copy and try to change one of your components into something else. Lol