Bloki tekstu – informacje wstępne
Bloki tekstowe są wprowadzone jako preview.
Zwykły string:
String sname1 = "James W. Dobson"; System.out.println(sname1);
Na konsoli otrzymamy:
James W. Dobson
Blok tekstowy:
String tbname1 = """ James W. Dobson"""; System.out.println(tbname1);
Na wydruku otrzymamy:
James W. Dobson
Porównanie:
System.out.println(sname1.equals(tbname1));
Na konsoli otrzymamy;
true
Zapiszmy blok tekstowy trochę inaczej:
String tbname2 = """ James W. Dobson """; System.out.println(tbname2);
Na konsoli zobaczymy:
James W. Dobson
Porównanie:
System.out.println(sname1.equals(tbname2));
Na konsoli zobaczymy:
false
Zmieńmy nieco string i dokonajmy porównania:
String sname2 = "James W. Dobson\n"; System.out.println(sname2.equals(tbname2));
Na konsoli zobaczymy:
true
Reguły
1. Blok tekstowy zaczyna i kończy się trzema podwójnymi cudzysłowami.
2. Początkowe trzy cudzysłowy muszą znajdować się w oddzielnej linii.
System.out.println("""Pierwsza linjka"""); //Błąd System.out.println("""Pierwsza linjka """); //Błąd
3. Tekst jest wyrównany z lewej do pierwszego cudzysłowu z zamykającej trójki.
4. Wszystko co znajduje się przed tym cudzysłowem (z lewej) to spacje incydentalne nie wchodzące do stringu.
Wszystkie spacje na prawo od pierwszego cudzysłowu zamykającego są spacjami zamierzonymi będącymi częścią stringu.
System.out.println(""" Pierwsza linjka """); System.out.println(""" Pierwsza linjka Druga linijka """); System.out.println(""" Pierwsza linjka Druga linijka """); System.out.println(""" Pierwsza linjka Druga linijka """); System.out.println(""" Pierwsza linjka Druga linijka Trzecia linijka """); System.out.println(""" package textblocks; public class HelloWorld { public static void main(String[] args){ System.out.println("Hello World"); } } """);
Pierwsza linjka Pierwsza linjka Druga linijka Pierwsza linjka Druga linijka Pierwsza linjka Druga linijka Pierwsza linjka Druga linijka Trzecia linijka package textblocks; public class HelloWorld { public static void main(String[] args){ System.out.println("Hello World"); } }
Nowe metody
W klasie String
znalazły się nowe metody (oznaczone jako deprecated
):
String formatted(Object... args)
String stripIndent()
String translateEscapes()
Jeśli chcesz wiedzieć więcej zajrzyj tutaj
Klasy
TextBlocks1.java
1 package textblocks; 2 3 public class TextBlocks1 { 4 5 public static void main(String[] args) { 6 String sname1 = "James W. Dobson"; 7 System.out.println(sname1); 8 String tbname1 = """ 9 James W. Dobson"""; 10 System.out.println(tbname1); 11 System.out.println(sname1.equals(tbname1)); 12 String tbname2 = """ 13 James W. Dobson 14 """; 15 System.out.println(tbname2); 16 System.out.println(sname1.equals(tbname2)); 17 String sname2 = "James W. Dobson\n"; 18 System.out.println(sname2.equals(tbname2)); 19 //--- 20 //System.out.println("""Pierwsza linjka"""); Błąd 21 //System.out.println("""Pierwsza linjka 22 //"""); Błąd 23 System.out.println(""" 24 Pierwsza linjka 25 """); 26 System.out.println(""" 27 Pierwsza linjka 28 Druga linijka 29 """); 30 System.out.println(""" 31 Pierwsza linjka 32 Druga linijka 33 """); 34 System.out.println(""" 35 Pierwsza linjka 36 Druga linijka 37 """); 38 System.out.println(""" 39 Pierwsza linjka 40 Druga linijka 41 Trzecia linijka 42 """); 43 System.out.println(""" 44 package textblocks; 45 46 public class HelloWorld { 47 public static void main(String[] args){ 48 System.out.println("Hello World"); 49 } 50 } 51 """); 52 } 53 } 54
Po uruchomieniu kodu na konsoli otrzymujemy:
James W. Dobson James W. Dobson true James W. Dobson false true Pierwsza linjka Pierwsza linjka Druga linijka Pierwsza linjka Druga linijka Pierwsza linjka Druga linijka Pierwsza linjka Druga linijka Trzecia linijka package textblocks; public class HelloWorld { public static void main(String[] args){ System.out.println("Hello World"); } }