我正在尝试将给定单词的同义词存储到HashMap
中。然后,我接受用户输入并检查它是否是一个单词或其同义词。例如,假设主要词是“bank”,其同义词是“safe”、“tresury”和“credit union”。如果用户输入“bank”,我想输出“bank”这个词。如果用户输入“safe”,我仍然想输出“bank”这个词,因为“safe”是“bank”的同义词。
这是我的同义词方法
public static void populateSynonymMap() {
HashMap<String, String[]> synonymMap = new HashMap<String, String[]>();
String word = "bank";
String synonymn[] = { "safe", "treasury", "credit union" };
synonymMap.put(word, synonymn);
}
这是我的主要方法
public static void main(String args[]) throws ParseException, IOException {
/* Initialization */
List<String> matches = new ArrayList<String>();
HashMap<String, String[]> synonymMap = new HashMap<String, String[]>();
synonmynMap = populateSynonymMap(); //populate the map
boolean found = false;
Scanner in = new Scanner(System.in);
Scanner scanner = new Scanner(System.in);
String input = null;
System.out.println("Welcome To Artifical Intelligence DataBase ");
System.out.println("What would you like to know?");
System.out.print("> ");
input = scanner.nextLine().toLowerCase();
}
最佳答案
你的 synonymMap 应该以其他方式组织,键是“同义词”,值是它们的公共(public)输出。
所以在你的例子中:
String word = "bank";
String synonymn[] = { "safe", "treasury", "credit union" };
for (String syn : synonymn)
synonymMap.put(syn, word);
然后,当用户输入一个单词时,您将检查它是否存在于 synonymMap 中,如果存在,则返回其值:
String syn = synonynMap.get(input);
if (syn != null) return syn;
else return input;
关于java - 同义词 HashMap 的正确用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29875777/