I’m developing an application that has to receive multiple pieces of input from the user’s terminal, while elegantly handling invalid input and prompting the user to re-enter it. My firs thought would be to have a while loop whose body will take the input and verify it’s validity, setting a flag when it gets valid input. This flag will mark the stage the application is at and will determine what type of input is required next, and will also be used as the terminating condition of the loop.
While functional, this seems rather inelegant and I was wondering if there was a way I could simply write a function that is called whenever the return key is pressed to indicated that there is new input to be parsed. Something along the lines of
public class Interface {
public void receiveInput( final String input ){
// Parse 'input' for validity and forward it to the correct part of the program
}
}
Perhaps this could be achieved by extending some Java class and reimplementing one of it’s functions that would normally handle such an event, but that’s perhaps my C++ background talking.
I’m not allowed to use any external libraries, other than those requires for building and unit testing.
While reading from the console you can use BufferedReader
and by calling the readLine function, it will handle new line :
You can sure have a class in which there would be a function which reads the information and continue.
Here is the sample code for your reference
Here is the output:
Hope this helps.