Я даже не могу нормально написать заголовок вопроса, т.к. не представляю, как это назвать. Суть в том, что я пишу Tg-бота, и мне надо что бы он отвечал на сообщения. Я могу сделать это с помощью if-else, но это будет очень громоздко. Как примерно это реализовать?
answer.properties
(например)=,-,:
или похожих то самое простое на первой строке писать вопрос, на следующей ответ. При запуске боту загрузить список вопрос-ответ в Map
Map<String, String> allAnswer = new HashMap<>();
public void init(){
BufferedReader reader = new BufferedReader(new FileReader("путь к фалу"));
String question;
while( (question = reader.readLine()) != null){
String answer = reader.readLine();
allAnswer.put(question, answer);
}
}
В данном случае ответственность за валидность файла (у каждого вопроса должен быть ответ) лежит на вас.
Создать метод в который приходит вопрос от пользователя и возвращается ответ:
public String answer(String question){
String answer = allAnswer.get(allAnswer);
if (answer == null)
return "нет ответа";
return answer;
}
В боте может быть много команд, и у каждой команды может быть много параметров. Можно для каждой команды добавить слушателя, и реализовать его обработчик. Теперь вы можете написать switch, и при необходимости (при нужной команде) извещать слушателя о пришедшем сообщении.
В обработчике будет обработка параметров команды, некоторые действия, и ответ. Обработчик также должен возвращать сообщение -- успешное, или с ошибкой.
См. паттерн "Наблюдатель" (https://ru.wikipedia.org/wiki/Наблюдатель_(шаблон_проектирования))
Делать таблицу для команд я не вижу смысла. А вот для обработки параметров -- наверно, стоит.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
При попытке создания объекта класса, не выходит создать объект класса, ссылаясь на:
Добрый день! Не могу решить данную задачу, буду очень признателенНеобходимо выполнить внешнее отсечение пятиугольника окном на основе алгоритма...
У меня 2 Activity на одном RecyclerView, на другом FragmentВ Activity в котором RecyclerView все хорошо работает, он заполняется
Пытаюсь вставить значение из inputКогда прописываю строкой - все работает, когда тяну из переменной - jQuery