Проверить содержимое в массиве является словом или нет - PullRequest
0 голосов
/ 23 января 2012

Вот что у меня в массиве ...

myArray = {"about","name","dsafasdf","fix"};

Я хочу найти английские слова в этом массиве.

Ниже должно быть выведено:

Words found are as below
about
name
fix

Заранее спасибо !!!

Любой пример или ссылка будут работать !!!

На самом деле я хочу реализовать TextTwist Game . Я нашел возможные слова, однако я хотел бы проверить, является ли найденная строка WORD / Grammar или нет ...

Обновление 1

Пожалуйста, не советуйте мне создавать файл и вставлять в него слова, а затем искать слово в этом файле ... Это будет программа WORSTEN ....

Ответы [ 6 ]

2 голосов
/ 23 января 2012

Вам нужна библиотека со всеми английскими словами. И вы должны проверить каждое слово.
И этот - это похожий вопрос. И если вы не хотите использовать библиотеку Java, вы должны найти текстовый файл, содержащий все слова или что-то в этом роде, и написать свой собственный метод для поиска слова. Обратите внимание, что ваш текстовый файл должен быть отсортирован, чтобы вы могли найти слово с помощью алгоритма разделяй и властвуй . В противном случае поиск займет очень много времени.
EDIT:
И вы также должны помнить, что имена не являются «английскими словами», как говорит @amit. Они могут встречаться везде в тексте. Вы должны проверить, начинается ли слово с заглавной буквы и не в начале предложения.

1 голос
/ 23 января 2012

Вместо того, чтобы работать со статической коллекцией слов, как предлагается в других ответах, я бы использовал что-то гораздо более динамичное - Интернет .

Хорошая эвристика может быть - найдите, если искомое слово появляется в названии статьи в wikipedia , и примите его, если оно есть!

Обратите внимание, чтоПреимущество - динамически растущий «список» слов, без необходимости хранить их в словаре.

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

Посмотрите API Википедии , чтобы понять, как это сделать.

Еще один онлайнисточником информации, которую вы можете использовать, является API поиска Bing [это бесплатно!хотя в последнее время есть некоторые проблемы ...]

1 голос
/ 23 января 2012

Вам нужно будет прочитать файл английской библиотеки и проверить это.Пример такого файла можно найти здесь: http://wordlist.sourceforge.net/

0 голосов
/ 10 февраля 2012

Я сам реализовал версию TextTwist в java и обнаружил, что чтение из текстового файла словаря в набор работ String прекрасно работает.

Вот мой код, проект Java EclipseВ случае, если вы заинтересованы.Обратите внимание, что я реализовал это с учетом многопользовательской функциональности, поэтому код разделен между клиентом и сервером.https://github.com/fangsterr/Multiplayer-Text-Twist

0 голосов
/ 23 января 2012

Вы можете поискать в словаре или использовать для этого специальные библиотеки: посмотрите Как проверить, является ли слово английским словом в Python?

0 голосов
/ 23 января 2012

Первый: определите свой словарь английских слов.
Тогда: Поместите все эти миры в Collection.
Наконец: для каждого слова в вашем массиве проверьте, входит ли оно в набор английских слов.

Это не слишком эффективно, но оно должно выполнять работу:

String[] englishWords = new String[]{"a", "all", "an",...};
Collection<String> dictionary = Arrays.asList(englishWords);
for (String candidate : myArray){
  if (dictionary.contains(candidate)){
    System.out.println(candidate);
  }
}
...