Проверить, содержит ли строка подстроку после пробела - PullRequest
0 голосов
/ 08 мая 2020

В моем приложении есть команда "/ library". Я хочу проверить запросы пользователей:

, если запрос содержит только «/ library» -> тогда ответьте первым регистром;

если запрос содержит «/ library Something» -> затем ответьте другим регистром .

Допустимая форма для второго случая: / библиотека + пробел + другое слово. Как я могу разделить эти два запроса?

Теперь у меня есть такой вариант:

message.equals(LIBRARY_COMMAND){
   first case
   ...
}
message.startsWith(LIBRARY_COMMAND) && message.length() > LIBRARY_COMMAND.length(){
   second case
   ...
}

Но я думаю, что это выглядит не очень хорошо.

Ответы [ 3 ]

0 голосов
/ 08 мая 2020

Чистый подход:

swicth(message) {
case LIBRARY_COMMAND:
    first case
    ...
    break;
default:
    second case
    ...
}
0 голосов
/ 09 мая 2020

С точки зрения масштабируемости возможное решение, которое включает простую масштабируемость, могло бы выглядеть следующим образом:

String [] args = StringUtils.split (LIBRARY_COMMAND, "");

Далее вы хотите

  1. проверить значение null, если оно равно null, запросить пользователя и завершить процесс

  2. проверить количество аргументов, если оно менее 1 запроса пользователю и завершающему процессу

  3. Проверьте, является ли первый аргумент «библиотека», и если это так, выполните процесс

  4. В этом процессе вы хотите последовательно перебрать каждый аргумент, а затем соответственно кодировать для каждого случая. Этот класс процесса должен реализовывать интерфейс, который можно повторно использовать для любых дополнительных команд, которые будут добавлены в будущем.

0 голосов
/ 08 мая 2020

Вы можете использовать ifs как это.

   if (message.startsWith(LIBRARY_COMMAND)) {
        if (message.length() > LIBRARY_COMMAND.length()) {
            // second case
        } else {
            // first case
        }

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...