2015-04-26 2 views
0

Я пытаюсь сохранить синонимы данного слова в HashMap. Затем я беру ввод пользователя и проверяю, является ли это словом или его синонимом. Например, предположим, что основным словом является «банк», а его синонмыны являются «безопасными», «перегруженными» и «кредитными союзами». Если пользователь входит в «банк», я хочу вывести слово «банк». Если пользователь вводит «безопасный», я все же хочу вывести слово «банк», потому что «безопасный» является синонимом «банка».Правильное использование хэш-карт для синонимов

Вот мой метод Synonymn

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(); 


} 

ответ

0

вы можете добавить каждое слово своего синонима [] как ключ к вашей карте тоже. конечно, с массивом синонимов, содержащих слово и все другие синонимы. я знаю, что должны быть лучшие подходы, но это самый простой способ, о котором я могу думать в данный момент.

1

Ваш синонимМард должен быть организован другим способом, а ключом являются «синонимы», а значение - их общий вывод.

Таким образом, в вашем примере:

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; 
+0

Вы могли не должны. Простой оператор if справляется с ним, как в приведенном выше коде, и позволяет различать синонимы и оригинальные слова, если такая функция необходима. – Zielu

+0

Вы не сделали это очень четко в своем ответе. Не знаю, где вы будете использовать второй фрагмент. – Dici

Смежные вопросы