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");