как разобрать файл - PullRequest
       2

как разобрать файл

0 голосов
/ 15 октября 2011

Хорошо, у меня есть задание, и я не знаю, как разобрать файл. Является ли string tokenizer моим лучшим вариантом? Файл содержит запятые, символы новой строки и пробелы. S - начальное состояние, а маленькое - вход, а большое - следующее состояние. Должен ли я разобрать файл в отдельные переменные и запустить его через регистр коммутатора для имитации конечного автомата?

Это файл

‘Ends in a
2
S, a, A
S, b, S
A, a, A
A, b, S
F: A
aba
bbaabba
bbabab
aaaab
b
a

Большое спасибо, потому что я просто не могу начать ...

Ответы [ 2 ]

2 голосов
/ 15 октября 2011

Мой самый большой вопрос - как мне разобрать файл?

Как и любой другой текстовый файл.Буквально миллионы примеров того, как это сделать в Интернете.

Я бы искал примеры, используя класс Scanner.

Я не очень хорош в разборе файлов,Особенно в этой ситуации.

С практикой это станет легче.Выполнение этого задания поможет.

Должен ли я использовать дилиметры?

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

запятая и новая строка?

Ваш файл содержит запятые, символы новой строки и пробелы.

и помещает состояния в массив, а входы (a, b) во второй массив?

Java - объектно-ориентированный язык программирования.Возможно, лучше использовать Коллекции, такие как Карта и Объекты.

Должен ли я проверять цифры, isaplha?

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

строчные и прописные буквы?

Не уверен, что это соображение.

Я думаю, мне нужен переключатель и пара случаев для обработки переходов состояний?

Если бы ваши состояния обрабатывались в Java-коде, я бы сказал, да.Однако ваши состояния читаются из текстовых файлов и сохраняются в структуре данных.В этом случае проще не использовать переключатели.

Может кто-нибудь объяснить, как мне поступить с этим файлом, чтобы я мог его обработать?

Чтение, сохранение данных в структуре, обработка входных данных.

Я также не совсем понимаю, как обращаться с: FA в этом файле ..

Это информация, которую вам необходимо записать, чтобы определить, когда ваш DFA останавливается.

1 голос
/ 15 октября 2011

Java является объектно-ориентированным языком, поэтому создайте серию классов, отражающих реальный мир.

Пример:

Что у вас есть?И что им нужно, чтобы иметь возможность

  • DFA

    • имеет ряд состояний
    • должен иметь возможность принять /отклонить входные строки
  • Состояние

    • имеет коллекцию входных данных для поиска и состояния для перехода на основе входных данных
    • должен иметь возможность проверять токен и переходить в новое состояние

Таким образом, они определяют, как вы должны планировать свои классы (члены и методы).Итак, вы должны создать класс DFA, и у него должен быть метод: public boolean process (String input).

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