and so on.
The top line is just headers. The second is what everything is out of.
Below that everything is layed out. Now this would be easy if all values were put in. However Every blank space is supposed to be a zero.
So using a string tokenizer how would I be able to read in say lines 1 and two and get something like this.
Student 1 has ID 133502, and marks [25,14.5,31.5,19.5,60]
Student 2 has ID 154741, and marks [5,0,5,17,17,69.5]
and so on?
Using just basic String tokenization it would ofcourse skip the blank in student two and would only give me four marks. Any tips on how to do this? Atleast point me in the right direction^^ Thx
Edit: I uploaded the txt file since it wasnt showing it right.
thats just a horrible way to format a file. slap your teacher! So a space acts as a delimiter but also represents a null value for a particular assignment? Only thing you can do in this case is "assume" that only 3 grades would mean the student only completed assignments A1-A3 and none of the later ones. If they only had a grade for A1 and A4 and spaces inbetween, it would be read in as A1 and A2 instead. If thats the way it's suppose to be, then:
read a line
create a new StringTokenizer with that line.
read the first token as the "id"
while hasMoreTokens(), read in a grade
when done, read next line of file and create a new tokenizer again.
You can read the first line of the file to determine the max number of grades then build an array of that size or just use ArrayList.
...reminds of an IT "expert" I met once, he could not see the need for the newline character (it made the code look messy...), after all, when a text string hit the right side of the sceen it would wrap anyway...
Bookmarks