Добавяне на символ на нов ред към низ в Java

1. Общ преглед

Форматирането на низове и генерирането на изходен текст често се появяват по време на програмиране. В много случаи е необходимо да добавите нов ред към низ, за ​​да форматирате изхода.

Нека да обсъдим как да използваме символи от нов ред.

2. Добавяне на символи от нов ред в низ

Операционните системи имат специални символи, обозначаващи началото на нов ред. Например в Linux нов ред се обозначава с „ \ n“ , наричан още Line Feed . В Windows нов ред се обозначава с “ \ r \ n” , понякога наричан Carriage Return and Line Feed или CRLF .

Добавянето на нов ред в Java е толкова просто, колкото включването на „ \ n“ , „ \ r“ или „ \ r \ n“ в края на нашия низ.

2.1. Използване на CRLF прекъсвания на линии

За този пример искаме да създадем абзац, като използваме два реда текст. По-конкретно искаме ред2 да се появи в нов ред след ред1 .

За Unix / Linux / Нова 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 таг за прекъсване

Можем да използваме и Unicode символи „& # 13;“ (Връщане на каретата) и „& # 10;“ (Подаване на линия). Въпреки че тези герои работят, те не работят точно както бихме могли да очакваме от тях на всички платформи. Вместо това е по-добре да се използва

Освен това можем да използваме „\ n“ в някои HTML елементи, за да прекъснем ред.

Като цяло това са трите метода за прекъсване на ред в HTML. Можем да решим кой да използваме в зависимост от HTML маркера, който използваме.

3.1. HTML етикет за прекъсване

Можем да използваме HTML таг за прекъсване

rhyme = line1 + "

" + line2;

The

таг за прекъсване на ред работи в почти всички HTML елементи като ,

,

и др. Имайте предвид обаче, че не работи в етикет.

3.2. Характер за нов ред

Можем да използваме „\ n“ за прекъсване на ред, ако текстът е затворен в

 или  етикет:

rhyme = line1 + "\n" + line2;

3.3. Unicode символи

И накрая, можем да използваме Unicode символи „& # 13;“ (Връщане на каретата) и „& # 10;“ (Line Feed) за прекъсване на линия. Например в таг можем да използваме едно от следните:

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

За

 етикет, и двата реда по-долу ще работят:

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

4. Разликата между \ n и \ r

\ r и \ n са символи, обозначени със ASCII стойности съответно 13 (CR) и 10 (LF). И двете представляват прекъсване между две линии , но операционните системи ги използват по различен начин.

On Windows, a sequence of two characters is used to start a new line, CR immediately followed by LF. Conversely, on Unix-like systems, only LF is used.

When writing Java applications, we must pay attention to the line break characters we use because the applications will behave differently depending on the operating system they will run on.

The safest and most cross-compatible option is to use System.lineSeparator(). This way, we won't have to take the operating system into account.

5. Conclusion

In this article, we discussed how to add newline characters to a string in Java.

We also saw how to write platform independent code for a new line using System.lineSeparator() and System.getProperty(“line.separator”).

Накрая завършихме с това как да добавим нов ред, в случай че генерираме HTML страница.

Пълното изпълнение на тази статия може да бъде намерено в GitHub.