Вопрос

Я могу отработать, как создать анаграммы строки, но я не знаю, как я могу сравнить их с словарем реальных слов, чтобы проверить, является ли Anagram реальным словом. Есть ли класс в Java API, который содержит весь английский словарь?

Это было полезно?

Решение

Нет, но вы можете получить словый список из Различные места. Отказ Оттуда вы можете прочитать файл Wordlist в список:

List<String> lines = new ArrayList<String>();
BufferedReader in = new BufferedReader(new FileReader("wordlist.txt"));
String line = null;
while (null!=(line=in.readLine()))
{
   lines.add(line);
}
in.close();

И наконец бинарный поиск использовать lines.contains() для вашего кандидата слова.

Другие советы

Один из способов определения того, является ли набор символов анаграммы слова включает в себя использование простых чисел. Назначить каждую букву простое число, например, A = 2, B = 3, C = 5, D = 7. Теперь предварительно предложите продукцию простых простых чисел для каждого слова в вашем словаре. Например, «добавить» = 2 * 7 * 7 = 98, или «плохо» = 3 * 2 * 7 = 42.

Теперь определяя, является ли набор букв Anagram любого слова в словаре, можно сделать, вычисляя значение набора букв. Например, буквы «ABD» = 2 * 3 * 7 = 42 = «плохо». Просто проверьте, существует ли вычисленное значение для букв в вашем предварительном словаре. Для любой анаграммы вам нужно только сделать это вычисление, когда-то против попытки генерировать все возможные анаграммы. Обратите внимание, однако этот метод будет работать хорошо для относительно маленьких слов, в противном случае вы столкнетесь с проблемами переполнения и должны использовать BigInteger.

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

Может быть, английский словарь в джазжи могу помочь тебе.

Там нет такого специализированного класса в стандартной библиотеке Java, но вы можете использовать любую реализацию, которую вам нравятся Задавать Интерфейс и инициализируйте его, загружая его со словами по вашему выбору, выбранным из любого из бессмысленного Списки слов Во многих местах вы можете найти (просто проверьте, что лицензия на лицензию на ваш выбор слов, совместима с предполагаемым приложением, например, позволяет ли он разрешать коммерческое использование, приложения для замкнутых источников, если это то, что вам нужно, и так далее).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top