user249375
user249375

Reputation:

how to parse a file

Alright, i have an assignment and i dont know how to parse the file. Is string tokenizer my best option? The file has commas, newlines and spaces. S is the starting state and small a is the input and the big A is the next state. Should i parse the file into seperate variables and run it through a switch case to simulate a state machine?

This is the file

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

Thank you so much because i just cant seem to get started...

Upvotes: 0

Views: 1963

Answers (2)

jeff
jeff

Reputation: 4333

Java is an object-oriented language so build a series of classes that reflect the real world.

Example:

What do you have? And what do they need to be able to do

  • DFA

    • has a series of states
    • needs to be able to accept/reject input strings
  • State

    • has a collection of inputs to look for and states to transition to based on input
    • needs to be able to check for a token and transition to a new state

So these kind govern how you should lay out your classes (members and methods). So you should make a DFA class and it should have a method: public boolean process(String input).

Upvotes: 1

Peter Lawrey
Peter Lawrey

Reputation: 533790

My biggest question is how can i parse the file?

Like any other text file. There are literally millions of examples on how to do this on the web.

I would look for examples using the Scanner class.

I am not very good at parsing files. Especially in this situation.

With practice it will get easier. Doing this assignment will help.

Should i use dilimeters?

The file has delimiters so I don't why you wouldn't.

comma and newline?

Your file has commas, newlines and spaces.

and put the states into an array and the inputs ( a,b) into a second array?

Java is an object orientated programming language. Perhaps using Collections like Map and Objects is a better choice.

Should i check for digits, isaplha?

I would just assume the file is formatter correctly and read numbers when you expect to have a number and strings when you expect to have a word/token.

lower case and uppercase alpha?

Not sure if this is a consideration.

i am thinking i need a switch and a couple of cases to handle the state transitions?

If your states were handled in Java code, I would say yes. However you states are being read from a text files and stored in a data structure. In this case its simpler not to use switches.

Can someone explain how i should go about handling this file so i can process it?

Read it, store the data in a structure, process the inputs.

I am also confused on how to handle the :F A in that file..

This is information you need to record to determine when your DFA stops.

Upvotes: 2

Related Questions