Что такое перенос строки
Перенос строки, он же перенос каретки это один или несколько спецсимволов, означающие окончание текущей строки символов и перевод картеки на новую строку. В зависимости от операционной системы используются разные спецсимволы. Например, в Windows используются спецсимволы CR + LF:
Спецсимолы | Альт-код | Управляющая последовательность | Операционные системы |
---|---|---|---|
CR LF | 13 10 | \r \n | DOS, OS/2, все версии Windows (в том числе и последние) |
LF | 10 | \n | Linux, macOS, Unix и прочие POSIX-совместимые системы |
CR | 13 | \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
каждый раз, когда хотите сделать перенос строки – вы можете воспользоваться стандартным методом System.lineSeparator()
, который возвращает перенос строки для той операционной системы, в которой сейчас выполняется ваша программа. Это очень полезно, если программа исполняется и в Windows и в Linux окружении.
Просто используйте System.lineSeparator()
в том месте, где вам нужно создать новую строку:
String multipleLines = "Hello" + System.lineSeparator() + "Java" + System.lineSeparator() + "World!"; System.out.println(multipleLines);
Итак, вы научились делать перевод строки в Java, используя два способа.