login
、などのコマンドを記述できるコンソールに基づいて、単純な対話型シェルを作成したいと考えていますhelp
。
私は最初に列挙型を使用することを考えましたが、その後、if-else ステートメントを大量に使用せずに列挙型を適切に実装する方法がわからなかったため、配列アプローチを採用することにし、これを思いつきました。
public class Parser {
private static String[] opts = new String[] {"opt0", "opt1", "opt2", "opt3" ... }
public void parse(String text) {
for(int i = 0; i < opts.length; i++) {
if(text.matches(opts[i]) {
switch(i) {
case 0:
// Do something
case 1:
// Do something-something
case 2:
// Do something else
}
return;
}
}
}
}
しかし、これはおそらくこのようなことを行うための最も初歩的な方法であり、オプションの順序を変更したい場合に問題が発生することがわかりました。より単純なパーサーを作成するにはどうすればよいですか? このように機能しますが、問題もありました。プログラムの使用は純粋に教育的なものであり、深刻なことを意図したものではありません。