查找是否在Java中设置变量

时间:2015-11-05 22:17:08

标签: java

我正在使用Pircbot框架为Java中的IRC Bot发出命令。

if (message.contains("!goawaybot")){
    String[] parts = message.split(" ");
    //use the parts variable to find if the command has an argument
    //if yes, part with that message, else:
    partChannel(channel, "Leaving");
}

如果存在争论,(即"!goawaybot derp")那么它应该将该论点作为理由(i,e;" derp")。否则,它将与通用" Leaving"消息。

2 个答案:

答案 0 :(得分:1)

据我了解你的要求:

  

message可能包含文字" !goawaybot "。如果是,请使用partChannel()之后的任何文字作为!goawaybot的参数,或者#34; 离开"来呼叫partChannel()。如果没有提供。

分裂空白是有问题的;其中最重要的是它使处理多字消息变得不必要地困难。

这是regular expressions的标准问题。定义正则表达式,如:

^.*!goawaybot(.+)?$

Regular expression visualization

如果message与此正则表达式匹配,请使用您的partChannel()消息的第1组值(如果存在)。

E.g。

final Pattern GO_AWAY_BOT = Pattern.compile("^.*!goawaybot(.+)?$");

...

Matcher m = GO_AWAY_BOT.matcher(message);
if (m.matches()) {
  partChannel(channel, m.group(1) != null ? m.group(1) : "Leaving");
}

答案 1 :(得分:0)

String reason = (parts[1] != null) ? parts[1] : "Leaving";

并使用reason代替"离开"在part命令中。