Creating commands for terminal applications in Java
I'm new to programming. I'm creating an application that runs only on the command line I found that I could read input from the command line using BufferedReader
BufferedReader in = new BufferedReader(new InputStreamReader(system.in)); String Input = ""; while (Input.equalsIgnoreCase("Stop") == false) { Input = in.readLine(); //Here comes the tricky part } in.close();
What I need to do now is find a way to create different "commands" and use them by typing them on the command line However, these commands may have to be used multiple times Do I have to use some kind of command design pattern and a huge switch statement (which seems wrong to me)? I want to avoid using additional libraries
Is there anyone with more experience who can help me?
Solution
You can try something like this:
public static void main(String[] args) { BufferedReader in = new BufferedReader(new InputStreamReader(system.in)); String input = ""; try { while (!input.equalsIgnoreCase("stop")) { showMenu(); input = in.readLine(); if(input.equals("1")) { //do something } else if(input.equals("2")) { //do something else } else if(input.equals("3")) { // do something else } } } catch (IOException e) { e.printStackTrace(); } } public static void showMenu() { System.out.println("Enter 1,2,3,or \"stop\" to exit"); }
It is a good practice to keep the variables in a low range
I would say the same! Input. Equalsignorecase ("stop") is better than input Equalsignorecase ("stop") = = false is more readable, although the two are logically equivalent