Speaking of space-padding, here's another issue to consider:
The int[] find(
String[] criteria) method in the Data class is supposed to return the record numbers of those records where field[n] begins with criteria[n].
The specifications for the user interface, however, state:
It must allow the user to search the data for all records, or for records where the name and/or location fields EXACTLY MATCH values specified by the user.
This leads me to believe that you must filter the results returned from find(String[]) to remove the records that dont EXACTLY match the user input.
In reading other posts on this topic, some people have argued that this exact match criteria means that if a user enters "Fred", then the field must be exactly "Fred" to be a match, as opposed to "Fred ". I don't understand the point of that. I just trim the spaces off the end of the values and compare them.
After all, can you imagine a new fast-food company coming out and calling themselves "McDonald's ", and arguing in court that their name is not the same as "McDonald's" because theirs has a blank space at the end? I don't think sun intended exact to be interpreted quite so exactly.