Найти тип ответа в Java
Извините, если этот вопрос повторяется, но я не нашел ответа. Я хочу найти тип вопроса, используя Java. Проблема в том, что я не знаю, как найти тип вопроса из вопроса, который будет отправлен пользователю.
Например:
Where is the Louvre Museum?
The type of this question is location.
У кого-нибудь есть идеи, как это сделать?
2 ответа
Решение
Используя пользовательский ввод:
Scanner s = new Scanner(System.in)
задать вопрос ввода:
System.out.println("Question:");
String[] q = s.nextLine().split(" "); //changing user input to word array
String w = q[0].toLowerCase();
проверить вопросительные слова:
switch(w){
case "where":
//print out "this is a location question"
break;
case "who":
//print out "this is a who question"
break;
... //keep on doing this for all words
default:
//print out "this is not a valid question"
break;
}
если есть несколько:
System.out.println("Question:");
String[] q = s.nextLine().split(" ");
List<String> a = Arrays.asList(q);
Проверьте, содержит ли он вопросительные слова:
if(a.contains("Who"))
//print out "Who question"
if(a.contains("Where"))
//print out "Where question"
Вы можете рассмотреть возможность использования словарного списка, который будет содержать пары типа вопроса и конкретные подстроки, соответствующие типу вопроса, например:
"yes/no", "is"
"location", {"where", "how far", "direction"}
"time", {"when", "how long"}
Вы поняли идею. Это может быть сделано очень просто, используя отображение, например, HashMap, для этого случая:
HashMap <String, String[]> hm = new HashMap <String, String[]>();
Вы можете заменить
String[]
с
ArrayList <String>
также.