Przegląd
Formatowanie łańcucha znaków i generowanie tekstu często pojawia się podczas programowania. W wielu przypadkach istnieje potrzeba dodania nowej linii do ciągu znaków w celu sformatowania danych wyjściowych.
Przedyskutujmy, jak używać znaków nowej linii.
Dalsza lektura:
Sprawdzanie pustych lub pustych ciągów znaków w Javie
Sprawdzanie, czy łańcuch zawiera podłańcuch
Dodawanie znaków nowej linii w łańcuchu
Systemy operacyjne posiadają specjalne znaki oznaczające początek nowej linii. Na przykład, w Linuksie nowa linia jest oznaczana przez „n”, zwany również Line Feed. W Windows nowy wiersz jest oznaczany przez „\”, czasami nazywany Carriage Return and Line Feed, lub CRLF.
Dodanie nowego wiersza w Javie jest tak proste, jak dołączenie „\”, „\” lub „\” na końcu naszego łańcucha.
2.1. Używanie CRLF Line-Breaks
W tym przykładzie, chcemy utworzyć akapit używając dwóch linii tekstu. Konkretnie, chcemy aby linia2 pojawiła się w nowej linii po linii1.
Dla systemu operacyjnego Unix/Linux/Nowy Mac możemy użyć „\”:
String line1 = "Humpty Dumpty sat on a wall.";String line2 = "Humpty Dumpty had a great fall.";String rhyme = line1 + "\n" + line2;
Jeśli pracujemy na systemie operacyjnym Windows, możemy użyć „\”:
rhyme = line1 + "\r\n" + line2;
W przypadku starego systemu operacyjnego opartego na Macu, możemy użyć „\r”:
rhyme = line1 + "\r" + line2;
Zademonstrowaliśmy trzy metody dodawania nowej linii, ale niestety są one zależne od platformy.
2.2. Używanie niezależnych od platformy separatorów linii
Możemy używać stałych zdefiniowanych w systemie, gdy chcemy, aby nasz kod był niezależny od platformy.
Na przykład, używając System.lineSeparator() do podania separatora linii:
rhyme = line1 + System.lineSeparator() + line2;
Możemy też użyć System.getProperty(„line.separator”):
rhyme = line1 + System.getProperty("line.separator") + line2;
2.3. Używanie niezależnych od platformy znaków nowej linii
Ale separatory linii zapewniają niezależność od platformy, zmuszają nas do konkatenacji naszych łańcuchów.
Jeśli używamy czegoś takiego jak System.out.printf lub String.format, wtedy niezależny od platformy znak nowej linii, %n, może być użyty bezpośrednio wewnątrz łańcucha:
rhyme = "Humpty Dumpty sat on a wall.%nHumpty Dumpty had a great fall.";
To jest to samo co włączenie System.lineSeparator() wewnątrz naszego łańcucha, ale nie musimy dzielić łańcucha na wiele części.
Dodawanie znaków nowej linii na stronie HTML
Załóżmy, że tworzymy łańcuch, który jest częścią strony HTML. W takim przypadku, możemy dodać znacznik łamania HTML <br>.
Możemy również użyć znaków Unicode „& #13;” (Carriage Return) oraz „& #10;” (Line Feed). Chociaż te znaki działają, nie działają one dokładnie tak, jak moglibyśmy oczekiwać, że będą działać na wszystkich platformach. Zamiast tego, lepiej jest używać <br> do łamania linii.
Dodatkowo, możemy użyć „\” w niektórych elementach HTML, aby złamać linię.
Ogółem, są to trzy metody łamania linii w HTML. Możemy zdecydować, której z nich użyć w zależności od znacznika HTML, którego używamy.
3.1. HTML Break Tag
Możemy użyć HTML break tag <br> aby złamać linię:
rhyme = line1 + "<br>" + line2;
Tag <br> do łamania linii działa w prawie wszystkich elementach HTML, takich jak <body><p><pre>, itp. Zauważ jednak, że nie działa on w tagu <textarea>.
3.2. Newline Character
Możemy użyć '\n' do przerwania linii, jeśli tekst jest zamknięty w <pre> lub <textarea> tag:
rhyme = line1 + "\n" + line2;
3.3. Znaki Unicode
Wreszcie, możemy użyć znaków Unicode „& #13;” (Carriage Return) i „& #10;” (Line Feed) do przerwania linii. Na przykład, w tagu <textarea> możemy użyć jednego z tych elementów:
rhyme = line1 + "" + line2;rhyme = line1 + "" + line2;
Dla tagu <pre> będą działać obie poniższe linie:
rhyme = line1 + "" + line2;rhyme = line1 + "" + line2;
Różnica między \n a \r
\n i \n są znakami oznaczanymi wartościami ASCII odpowiednio 13 (CR) i 10 (LF). Oba reprezentują przerwę między dwoma wierszami, ale systemy operacyjne używają ich w różny sposób.
W Windows sekwencja dwóch znaków jest używana do rozpoczynania nowej linii, CR bezpośrednio po nim LF. Natomiast w systemach uniksopodobnych używa się tylko LF.
Pisząc aplikacje w Javie, musimy zwracać uwagę na znaki przerwania linii, których używamy, ponieważ aplikacje będą zachowywać się różnie w zależności od systemu operacyjnego, na którym zostaną uruchomione.
Najbezpieczniejszą i najbardziej kompatybilną opcją jest użycie System.lineSeparator(). W ten sposób nie będziemy musieli brać pod uwagę systemu operacyjnego.
Podsumowanie
W tym artykule omówiliśmy jak dodać znaki nowej linii do łańcucha znaków w Javie.
Widzieliśmy również jak napisać niezależny od platformy kod dla nowej linii używając System.lineSeparator() i System.getProperty(„line.separator”).
Na koniec dowiedzieliśmy się, jak dodać nową linię w przypadku, gdy generujemy stronę HTML.
Pełną implementację tego artykułu można znaleźć na GitHubie.
Zacznij przygodę ze Spring 5 i Spring Boot 2, dzięki kursowi Learn Spring:
>> CHECK OUT THE COURSE