java - 同义词 HashMap 的正确用法

标签 java hashmap

我正在尝试将给定单词的同义词存储到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/

相关文章:

java - 字符串列表获取一个没有循环开始的项目

java - 如何让 Selenium 等待执行的进程返回

java - 如何使用多线程使我的应用程序更快

java - php shell_exec ("java -version")返回 null

arrays - 查找负载超过 10% 网络的用户

用于将 TXT 读入 hashmap 的 java 类

java - 如何按降序打印 HashMap 值,但如果两个或多个值相等,则按键升序打印它们? (JAVA)

java - .equal 不适用于列表列表,即使它们相等

java - 在嵌套类中实现的比较器接口(interface)

python - Kotlin:从文件加载包含字符串和元组的字典( HashMap )