Java: equalsIgnoreCase + message.startswith?

Есть вопрос:

Как я могу объединить message.equalsIgnoreCase и message.startswith()?

то есть:

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) {
        }
    }
}

в моем коде выше,! спойлер xyz будет запускать его, но! Спойлер xyz не будет. Как я могу объединить это, чтобы Мач начинает с + игнорировать?

4 ответа

Решение

Вы могли бы использовать toLowerCase

if (message.toLowerCase().startsWith("!spoiler")) {

Преобразуйте (копию) строки во все строчные буквы, затем просто используйте.startsWith() с версией нижнего регистра того, что он проверяет.

Используйте следующий код, чтобы объединить оба:

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) {
            }

    }

split требует регулярного выражения. Вы должны использовать регулярное выражение для случая, который вас не волнует.

message.split("![Ss]poiler");
Другие вопросы по тегам