3

有一个问题:

我如何结合 message.equalsIgnoreCase 和 message.startswith() ?

IE:

if (message.startsWith("!spoiler")) {
    String name = sender;
    if (!name.equalsIgnoreCase(ownerchannel)){
        try {
            String spoiler = message.split("!spoiler ")[1];
            sendMessage(channel, "/timeout "+name+" 1");
            if(englishmode == true){
                sendMessage(channel, "Spoiler from "+name+" deleted. Click at 'message deleted' above to read it!");
            }else{
                sendMessage(channel, "Spoiler von "+name+" wurde zensiert. Wer diesen lesen möchte klickt einfach oben auf 'message deleted'.");
            }
        } catch (Exception e) {
        }
    }
}

在我上面的代码中, !spoiler xyz 会触发它,但 !Spoiler xyz 不会。我怎样才能将它结合到匹配startswith + ignorecase?

4

4 回答 4

5

你可以使用toLowerCase

if (message.toLowerCase().startsWith("!spoiler")) {
于 2014-04-02T18:42:20.477 回答
0

将字符串(的副本)转换为全部小写,然后只需将 .startsWith() 与它正在检查的小写版本一起使用。

于 2014-04-02T18:42:19.140 回答
0

split需要正则表达式。对于您不关心的情况,您必须使用正则表达式。

message.split("![Ss]poiler");
于 2014-04-02T18:42:46.527 回答
0

使用以下代码将两者结合起来:

if (message.startsWith("!spoiler") && !sender.equalsIgnoreCase(ownerchannel)) {
        String name = sender;
            try {
                String spoiler = message.split("!spoiler ")[1];
                sendMessage(channel, "/timeout "+name+" 1");
                if(englishmode == true){
                    sendMessage(channel, "Spoiler from "+name+" deleted. Click at 'message deleted' above to read it!");
                }else{
                    sendMessage(channel, "Spoiler von "+name+" wurde zensiert. Wer diesen lesen möchte klickt einfach oben auf 'message deleted'.");
                }
            } catch (Exception e) {
            }

    }
于 2014-04-02T18:52:32.683 回答