my code is yielding an unexpected result. It seems my for loop skips the first iteration and I don\'t understand why.
public static void main(String[] args) {
I am going to say it is because you still have a buffered CR/LF - so the first one is set to blank. Notice the blank line as you print your family names (numbers). That is your blank family name.
The keyboard input is a buffered stream - it has your 5, and it has a CR/LF (or perhaps just a LF, depending on your OS).
You probably want to get the LINE and then do a string.convert, atoi, system.convert (whichever one is for Java) to get the #.