java-解释用户文本输入的更好方法

我的应用程序中有一个文本框,用户可以输入任何内容.我正在创建一个控制器,该控制器根据关键字解释一些命令.

用户可以选择是否设置密码.并据此,我的解释器将不需要密码.

例如,如果设置了密码并且用户输入:“ password1 show list”.
解释器在第一个单词中检查密码,然后在命令(显示)中检查密码,然后在参数(列表)中检查密码.

如果未设置密码,则用户输入“显示列表”,并且口译员可以理解.

我当前的代码是:

// 'words' is a String array which contains the user input.

if (passwordEnabled()==true) {

    if (words[0].contentEquals(getpassword())
                    && words[1].contentEquals("show")
                    && words[2].contentEquals("list")) {

        // Perform action

    }
}
else {

    if (words[0].contentEquals("show")
                    && words[1].contentEquals("list")) {

        // Perform action

    }

}

我的问题是,有没有更有效/更好的方式来处理命令?我敢肯定,我的方法很粗鲁.

解决方法:

如果您试图设计基于“语言”的系统,并在其中询问命令,则应根据系统复杂性考虑两种可能的方法

>建立系统的有限自动机.您的if语句是这种结构的最基本形式,但将其定义为实际的自动机,即您具有状态以及将您移至另一个状态的命令-是一种非常干净且通用的方法.
>构建语法解释器/编译器.将正确的命令定义为语法(编译器)规则将使您在表达可能的命令和动作时有更多的能力.

当然,这些不是交替的解决方案-为语言建立语法是非常广泛的事情,应该使用它来解析命令,而有限状态自动机则充当内部存储器和可能动作的定义.

相关文章

python方向·数据分析   ·自然语言处理nlp   案例:中...
原文地址http://blog.sina.com.cn/s/blog_574a437f01019poo....
ptb数据集是语言模型学习中应用最广泛的数据集,常用该数据集...
 Newtonsoft.JsonNewtonsoft.Json是.Net平台操作Json的工具...
NLP(NaturalLanguageProcessing)自然语言处理是人工智能的一...
做一个中文文本分类任务,首先要做的是文本的预处理,对文本...