在java中使用AND、OR和NOT有效地测试关键字字符串

在java中使用AND、OR和NOT有效地测试关键字字符串,java,Java,我有一个在线游戏中运行的程序,它作为帮助机器人回答问题。它读取每条消息并检查其中是否包含某些关键字,如果包含,则问题得到回答。我正在使用&&| |和!运算符和一个大型嵌套/分支if-else语句来实现这一点,但我需要一些更高效的语句,这样就不会造成任何延迟。目前程序中有140个包含进程,但一次运行的最大进程数可能是70个。搜索的单词平均长度约为5-6个字符。输入消息长度不超过70个字符 if (msg.contains("where")) { if (msg.contains("x1")

我有一个在线游戏中运行的程序,它作为帮助机器人回答问题。它读取每条消息并检查其中是否包含某些关键字,如果包含,则问题得到回答。我正在使用&&| |和!运算符和一个大型嵌套/分支if-else语句来实现这一点,但我需要一些更高效的语句,这样就不会造成任何延迟。目前程序中有140个包含进程,但一次运行的最大进程数可能是70个。搜索的单词平均长度约为5-6个字符。输入消息长度不超过70个字符

if (msg.contains("where"))
{
    if (msg.contains("x1") && msg.contains("x2"))
    else if (msg.contains("x3") || msg.contains("x4"))
    else if (msg.contains("x5") && !msg.contains("x6"))
    else if (msg.contains("x7") && (msg.contains("x8") || msg.contains("x9"))
}

检查一条小消息是否包含10个子字符串所需的时间不会导致任何延迟,特别是与通过网络发送请求和接收响应所需的时间相比。我们说的是去你的厨房和去月球。您担心的是错误的。@JBNizet您是绝对正确的这有200多行,但仍然没有区别?我怀疑这会导致任何重大性能问题。但我更担心可读性和可维护性。如果不确切知道你想要实现什么,就很难给出建议。但是如果您正在查找单词,那么您可能应该首先将消息拆分为单词,并将它们存储在一个集合中,然后搜索集合中的单词。这将使它更正确,也更快。好吧,这听起来很有希望,基本上,每当有人在游戏中写消息时,帮助机器人试图用预先存储的答案回应他们,他们可能会问“绿龙在哪里”,他们的关键字将是“wher”、“green”和“drag”,在这种情况下,如果它包含所有的单词,它会将它们发回一个答案。您能给我一些用于拆分消息和设置操作的进程名吗?或者我应该在哪里查找它们检查一条小消息是否包含10个子字符串所需的时间不会导致任何延迟,特别是与通过网络发送请求和接收响应所需的时间相比。我们说的是去你的厨房和去月球。您担心的是错误的。@JBNizet您是绝对正确的这有200多行,但仍然没有区别?我怀疑这会导致任何重大性能问题。但我更担心可读性和可维护性。如果不确切知道你想要实现什么,就很难给出建议。但是如果您正在查找单词,那么您可能应该首先将消息拆分为单词,并将它们存储在一个集合中,然后搜索集合中的单词。这将使它更正确,也更快。好吧,这听起来很有希望,基本上,每当有人在游戏中写消息时,帮助机器人试图用预先存储的答案回应他们,他们可能会问“绿龙在哪里”,他们的关键字将是“wher”、“green”和“drag”,在这种情况下,如果它包含所有的单词,它会将它们发回一个答案。您能给我一些用于拆分消息和设置操作的进程名吗?或者我应该在哪里找他们