Перейти к основному содержимому

Добавление символа новой строки в строку в Java

· 5 мин. чтения

Задача: Наибольшая подстрока палиндром

Для заданной строки s, верните наибольшую подстроку палиндром входящую в s. Подстрока — это непрерывная непустая последовательность символов внутри строки. Стока является палиндромом, если она читается одинаково в обоих направлениях...

ANDROMEDA 42

1. Обзор

Форматирование строк и генерация текстового вывода часто возникают во время программирования. Во многих случаях необходимо добавить новую строку в строку для форматирования вывода.

Давайте обсудим, как использовать символы новой строки.

2. Добавление символов новой строки в строку

В операционных системах есть специальные символы, обозначающие начало новой строки. Например, в Linux новая строка обозначается символом « \n» , также называемым переводом строки . В Windows новая строка обозначается с помощью « \r\n » , иногда называемого возвратом каретки и переводом строки или CRLF .

Добавить новую строку в Java так же просто, как добавить « \n» , « \r» или « \ r \n» в конце нашей строки.

2.1. Использование разрывов строк CRLF

В этом примере мы хотим создать абзац, используя две строки текста. В частности, мы хотим, чтобы строка2 отображалась в новой строке после строки1 .

Для ОС Unix/Linux/New Mac мы можем использовать « \n»:

String line1 = "Humpty Dumpty sat on a wall.";
String line2 = "Humpty Dumpty had a great fall.";
String rhyme = line1 + "\n" + line2;

Если мы работаем в ОС на базе Windows, мы можем использовать « \r\n»:

rhyme = line1 + "\r\n" + line2;

Для старой ОС на базе Mac мы можем использовать « \r»:

rhyme = line1 + "\r" + line2;

Мы продемонстрировали три метода добавления новой строки, но, к сожалению, они зависят от платформы.

2.2. Использование независимых от платформы разделителей строк

Мы можем использовать системные константы, когда хотим, чтобы наш код не зависел от платформы.

Например, используя System.lineSeparator() для указания разделителя строк:

rhyme = line1 + System.lineSeparator() + line2;

Или мы могли бы также использовать System.getProperty(“line.separator”) :

rhyme = line1 + System.getProperty("line.separator") + line2;

2.3. Использование независимых от платформы символов новой строки

Хотя разделители строк обеспечивают независимость от платформы, они заставляют нас объединять наши строки.

Если мы используем что-то вроде System.out.printf или String.format , то независимый от платформы символ новой строки %n можно использовать непосредственно внутри строки :

rhyme = "Humpty Dumpty sat on a wall.%nHumpty Dumpty had a great fall.";

Это то же самое, что включить System.lineSeparator() в нашу строку, но нам не нужно делить строку на несколько частей.

3. Добавление символов новой строки на HTML-страницу

Предположим, мы создаем строку, являющуюся частью HTML-страницы. В этом случае мы можем добавить HTML-тег разрыва <br> .

Мы также можем использовать символы Юникода «& #13;». (Возврат каретки) и «& #10;» (перевод строки). Хотя эти персонажи работают, они работают не совсем так, как можно было бы ожидать, на всех платформах. Вместо этого лучше использовать <br> для разрыва строки.

Кроме того, мы можем использовать «\n» в некоторых элементах HTML для разрыва строки.

В целом, это три метода разрыва строки в HTML. Мы можем решить, какой из них использовать, в зависимости от используемого тега HTML.

3.1. Тег разрыва HTML

Мы можем использовать HTML-тег разрыва <br> для разрыва строки:

rhyme = line1 + "<br>" + line2;

Тег <br> для разрыва строки работает почти во всех элементах HTML, таких как <body> , <p> , <pre> и т. д. Однако обратите внимание, что он не работает в теге <textarea> .

3.2. Символ новой строки

Мы можем использовать '\n' для разрыва строки, если текст заключен в теги <pre> или <textarea> :

rhyme = line1 + "\n" + line2;

3.3. Символы Юникода

Наконец, мы можем использовать символы Юникода «& #13;». (Возврат каретки) и «& #10;» (Перевод строки) для разрыва строки. Например, в теге <textarea> мы можем использовать любой из них:

rhyme = line1 + "
" + line2;
rhyme = line1 + "
" + line2;

Для тега <pre> будут работать обе приведенные ниже строки:

rhyme = line1 + "
" + line2;
rhyme = line1 + "

" + line2;

4. Разница между \n и \r

\r и \n — символы, обозначаемые значениями ASCII 13 (CR) и 10 (LF) соответственно. Оба они представляют разрыв между двумя строками , но операционные системы используют их по-разному.

В Windows для начала новой строки используется последовательность из двух символов: сразу за CR следует LF. И наоборот, в Unix-подобных системах используется только LF.

При написании Java-приложений мы должны обращать внимание на символы разрыва строки, которые мы используем, потому что приложения будут вести себя по-разному в зависимости от операционной системы, в которой они будут работать.

Самый безопасный и совместимый вариант — использовать System.lineSeparator(). Таким образом, нам не придется учитывать операционную систему.

5. Вывод

В этой статье мы обсудили, как добавить символы новой строки в строку в Java.

Мы также увидели, как написать независимый от платформы код для новой строки, используя System.lineSeparator() и System.getProperty(“line.separator”) .

Наконец, мы закончили с тем, как добавить новую строку в случае, если мы создаем HTML-страницу.

Полную реализацию этой статьи можно найти на GitHub .