Wcięcia i usuwanie
Kontroluj niezamierzone białe znaki
Wcięcia i usuwanie to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 4 lekcji w sumie.
Białe znaki przypadkowe a istotne
Gdy w celu dopasowania bloku tekstu do kodu dodaje się wcięcie, jest ono nieistotne i nie powinno być częścią napisu. Java usuwa je automatycznie, zachowując tylko istotne białe znaki.
Zamykający ogranicznik wyznacza margines
Java analizuje wszystkie wiersze zawartości oraz zamykający """, aby znaleźć wspólną skrajną lewą kolumnę zawierającą znak. Wszystko na lewo od tego marginesu jest usuwane.
public class Main {
public static void main(String[] args) {
String text = """
Hello
World
""";
System.out.println("[" + text + "]");
}
}Przesuwanie zamykających cudzysłowów w lewo
Jeśli zamykający """ znajduje się bardziej na lewo niż zawartość, dodatkowe początkowe spacje w każdym wierszu zostają zachowane jako istotne białe znaki.
public class Main {
public static void main(String[] args) {
String text = """
Hello
World
""";
System.out.print(text);
}
}Końcowe białe znaki są usuwane
Spacje na końcu każdego wiersza są automatycznie usuwane. Zapobiega to trudnym do zauważenia błędom związanym z końcowymi spacjami, które często występują w zwykłych napisach.
public class Main {
public static void main(String[] args) {
String text = """
line one
line two
""";
for (String line : text.split("\n")) {
System.out.println("<" + line + ">");
}
}
}Metoda stripIndent
Metoda String.stripIndent() stosuje ten sam algorytm usuwania nieistotnych białych znaków do dowolnego napisu w czasie działania programu. Właśnie z niej korzystają wewnętrznie bloki tekstowe.
public class Main {
public static void main(String[] args) {
String raw = " a\n b\n c\n";
System.out.print(raw.stripIndent());
}
}Kontrolowanie wcięcia wewnątrz
Wcięcie względem marginesu jest zachowywane. W tym przypadku drugi wiersz jest bardziej wcięty niż pierwszy, a to dodatkowe wcięcie pozostaje w danych wyjściowych.
public class Main {
public static void main(String[] args) {
String tree = """
root
child
grandchild
""";
System.out.print(tree);
}
}Metoda indent
String.indent(int n) dodaje n spacji na początku każdego wiersza i zapewnia końcowy znak nowej linii. Jest przydatna do zagnieżdżania bloków tekstu.
public class Main {
public static void main(String[] args) {
String text = """
a
b
""";
System.out.print(text.indent(4));
}
}strip a trim
Należy użyć strip(), aby usunąć początkowe i końcowe białe znaki z całego bloku. W przeciwieństwie do starszej metody trim(), strip() uwzględnia kod Unicode.
public class Main {
public static void main(String[] args) {
String text = """
content
""";
System.out.println("[" + text.strip() + "]");
}
}Zamykające cudzysłowy w osobnym wierszu
Jeśli zamykający """ znajduje się w osobnym wierszu, napis kończy się końcowym znakiem nowej linii. Umieszczenie go bezpośrednio za ostatnim znakiem pozwala usunąć ten znak.
public class Main {
public static void main(String[] args) {
String withNewline = """
done
""";
String noNewline = """
done""";
System.out.println("A:" + withNewline.length());
System.out.println("B:" + noNewline.length());
}
}Wyrównywanie do kodu
Cały blok można wciąć tak, aby pasował do otaczającego kodu i był czytelniejszy, a nieistotne wcięcie zostanie usunięte z wartości.
public class Main {
static String menu() {
return """
Start
Options
Quit
""";
}
public static void main(String[] args) {
System.out.print(menu());
}
}Weryfikowanie marginesu
Aby debugować usuwanie wcięcia, należy ująć każdy wiersz w znaczniki. Dzięki temu dokładnie widać, które początkowe spacje zostały zachowane.
public class Main {
public static void main(String[] args) {
String block = """
x
y
""";
for (String line : block.split("\n")) {
System.out.println("|" + line + "|");
}
}
}Szybkie sprawdzenie
Co decyduje o tym, ile początkowych (nieistotnych) białych znaków zostanie usuniętych z bloku tekstowego?
Podsumowanie
Omówiono wcięcia i ich usuwanie:
- Nieistotne wcięcie jest usuwane automatycznie
- Pozycja zamykającego
"""może wyznaczać margines - Końcowe białe znaki wierszy są usuwane
- Metody
stripIndent(),indent(n)istrip()pomagają w czasie działania programu - Położenie zamykających cudzysłowów kontroluje końcowy znak nowej linii
Często zadawane pytania
Czy lekcja „Wcięcia i usuwanie” jest bezpłatna?
Tak — pełny tekst „Wcięcia i usuwanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Wcięcia i usuwanie”?
Kontroluj niezamierzone białe znaki Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Java Academy?
Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Wcięcia i usuwanie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?
Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Deklarowanie bloków tekstowych
- Wcięcia i usuwanie
- Sekwencje escape w blokach tekstowych
- Przypadki użycia: JSON i SQL