В этом семестре я занимаюсь классом Data Structures (в Java), но мы много разбираемся в текстовых файлах, чтобы заполнить структуры, которые мы разрабатываем. Основное внимание уделяется самим структурам, а не алгоритмам синтаксического анализа. Я чувствую себя слабым в этом районе и задавался вопросом, может ли кто-нибудь указать мне книгу или сайт на эту тему. Дизайн шаблонов, библиотек, стилей и т. Д. Спасибо!Где я могу узнать больше о разборе текста в Java?
ответ
Вы можете выполнить основной синтаксический анализ текста с помощью класса StringTokenizer, методов String.split() и классов Pattern и Matcher для регулярных выражений.
В книге «Шаблоны проектирования» описывается структура парсера рекурсивного спуска.
Компилятор-компилятор javacc может использоваться для генерации парсеров в Java.
Для разбора основных текстовых файлов в Java, я хотел бы начать с изучения класса Scanner:
Для любого текста разборе, базовые знания Regex является хорошая вещь:
Если сканер не выполняет задание, вы всегда можете анализировать текстовый файл по строкам с помощью BufferedReader, поддерживаемого FileReader.
BufferedReader reader = new BufferedReader(new FileReader("/path/to/file.txt"));
for (String line = reader.readLine(); line != null; line = reader.readLine())
{
//process your line here
}
Сканер может снова быть полезным здесь, и вы также можете посмотреть в String.split(), или Java шаблон API.
Файлы могут быть в различных форматах, однако. Для получения советов о наилучшем способе анализа файла файла в определенном четко определенном формате, Google будет вашим другом. Или вы всегда можете опубликовать более конкретный quesiton здесь с форматом, который дает вам проблемы.
- 1. Где я могу узнать о разборе грамматики?
- 2. Где я могу узнать больше о pthreads?
- 3. Где я могу узнать больше о указателях?
- 4. Где я могу узнать о сжатии текста в Java?
- 5. Где я могу узнать больше о зависимостях, используемых в Android
- 6. Где я могу узнать больше о TransportSecurityWithMessageCredential в Silverlight 3
- 7. Узнать больше о Java
- 8. Где я могу узнать больше о P/Invoke?
- 9. Где я могу узнать больше о возможностях сборки R?
- 10. Где я могу узнать больше о релятивизациях P и NP?
- 11. Где я могу узнать больше о синтаксисе OLAP столбца SnappyData?
- 12. Где я могу узнать больше о лямбда-выражениях?
- 13. Где я могу узнать больше о формате файла PowerPoint 2010?
- 14. Где я могу узнать больше о функции перевода PyPy?
- 15. Где я могу узнать больше о xcode OpenGL?
- 16. Где я могу узнать о MEF?
- 17. Где я могу узнать о строках JNDI?
- 18. Узнать больше о парсинге
- 19. Где я могу узнать о CScript?
- 20. Где я могу узнать о биомеханических алгоритмах?
- 21. Где я могу узнать о системах рекомендаций?
- 22. Где я могу найти больше документов о зеркале gnome-shell?
- 23. Где я могу узнать о «символах», которые используются в jQuery?
- 24. узнать больше о дате?
- 25. Где я могу пойти, чтобы узнать Java
- 26. Где я могу узнать больше об элементах OpenXML для Excel?
- 27. Где я могу узнать о ключевом слове C++?
- 28. где я могу узнать о протоколе отладчика JVM?
- 29. Где я могу узнать о различных типах баз данных?
- 30. Как я могу узнать больше о внутренних компонентах Python?
Это отлично подходит для более совершенного анализа, например, для определения простой грамматики. Мы использовали его в моей фирме, чтобы определить SQL-подобный язык запросов, специфичный для домена. – Adamski
@Adamski: Действительно, я использовал javacc несколько раз. Как старый пользователь yacc (1), я был впечатлен его простотой и мощью. –