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 chesz 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");
     }
 }

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *