Новые строки могут быть представлены с помощью различных управляющих символов \ escape-последовательности. Ваш код не работает должным образом, поскольку он учитывает только \n
, что означает перевод строки. Возврат каретки представлен \r
. Вы можете исправить свой код, проверив также возврат каретки, изменив
if ( !str.equals(" ") && !str.equals("\n") )
на
if ( !str.equals(" ") && !str.equals("\n") && !str.equals("\r") )
Таким образом, вы обрабатывать как управляющие символы CR, так и LF. Если вам интересно узнать об этом больше, посмотрите эту статью в Википедии: https://en.wikipedia.org/wiki/Newline