Zielony Smok - logo witryny

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