That is because of a Scanner class feature. The next... (except nextLine) methods leave the lineend char in its buffer. The nextLine method reads and returns that lineend char as an empty line. ...