2010-02-09 5 views
0

В этом семестре я занимаюсь классом Data Structures (в Java), но мы много разбираемся в текстовых файлах, чтобы заполнить структуры, которые мы разрабатываем. Основное внимание уделяется самим структурам, а не алгоритмам синтаксического анализа. Я чувствую себя слабым в этом районе и задавался вопросом, может ли кто-нибудь указать мне книгу или сайт на эту тему. Дизайн шаблонов, библиотек, стилей и т. Д. Спасибо!Где я могу узнать больше о разборе текста в Java?

ответ

1

Вы можете выполнить основной синтаксический анализ текста с помощью класса StringTokenizer, методов String.split() и классов Pattern и Matcher для регулярных выражений.

2

В книге «Шаблоны проектирования» описывается структура парсера рекурсивного спуска.

Компилятор-компилятор javacc может использоваться для генерации парсеров в Java.

+0

Это отлично подходит для более совершенного анализа, например, для определения простой грамматики. Мы использовали его в моей фирме, чтобы определить SQL-подобный язык запросов, специфичный для домена. – Adamski

+0

@Adamski: Действительно, я использовал javacc несколько раз. Как старый пользователь yacc (1), я был впечатлен его простотой и мощью. –

3

Для разбора основных текстовых файлов в 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 здесь с форматом, который дает вам проблемы.

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