Что такое перенос строки

Перенос строки, он же перенос каретки это один или несколько спецсимволов, означающие окончание текущей строки символов и перевод картеки на новую строку. В зависимости от операционной системы используются разные спецсимволы. Например, в Windows используются спецсимволы CR + LF:

СпецсимолыАльт-кодУправляющая последовательностьОперационные системы
CR LF13 10\r \nDOS, OS/2, все версии Windows (в том числе и последние)
LF10\nLinux, macOS, Unix и прочие POSIX-совместимые системы
CR13\rСтарые версии Mac OS (до версии 9)

Спецсимволу CR соответсвует альт-код 13, а спецсимволу LF альт-код 10. Кстати, CR означает carriage return (возврат каретки), а LF это line feed (перевод строки). Управляющая последовательность \r\n или \n как раз и обозначает перевод строки в Си подобных языках программирования.

Как сделать перенос строки

Допустим, у вас есть строка, содержимое которой выводится в консоль:

String oneLine = "Hello Java World!";
System.out.println(oneLine);

При выводе в консоль вы увидите те же слова, составляющие ровно одну строку, без переносов на новые строки. Как же нам добавить перенос строки в Java?

Для разных операционных систем переносом строки являются разные управляющие символы:
Для Windows это символы \r\n
Для Linux, macOS и прочих *nix систем это \n

Нужно добавить в искомую строку нужную управляющую последовательность, в зависимости от того, в какой операционной системе выолняется ваша программа.

Способ первый – захардкодить перенос строки

Допустим, ваша программа на Java запускается в Linux. Вы просто добавляете символы \n в то место в строке, в котором вам нужно сделать перевод на новую строку:

String multipleLines = "Hello\nJava\nWorld!";
System.out.println(multipleLines);

Теперь, при использовании переносов строки, вы, вместо одной строки в консоли увидите три строки – по каждой на символы \n

Перенос строки, используя символы переноса строки \n (для Linux)

Но как же быть, если вы не хотите хардкодить символы переноса строки?

Способ второй – портабельный и правильный

Если вы не хотите писать символы \n каждый раз, когда хотите сделать перенос строки – вы можете воспользоваться стандартным методом System.lineSeparator(), который возвращает перенос строки для той операционной системы, в которой сейчас выполняется ваша программа. Это очень полезно, если программа исполняется и в Windows и в Linux окружении.

Просто используйте System.lineSeparator() в том месте, где вам нужно создать новую строку:

String multipleLines = "Hello"
        + System.lineSeparator() + "Java"
        + System.lineSeparator() + "World!";
System.out.println(multipleLines);
Перенос строки в Java, используя стандартный System.lineSeparator()

Итак, вы научились делать перевод строки в Java, используя два способа.

Как добавить перенос строки в Java